@jjlmoya/utils-developer 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/index.ts +2 -0
- package/src/tests/locale_completeness.test.ts +2 -3
- package/src/tests/pagespeed_best_practices.test.ts +198 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/aspectRatio/component.astro +3 -1
- package/src/tool/colorConverter/component.astro +3 -3
- package/src/tool/llmCostCalculator/component.astro +1 -2
- package/src/tool/mobileMockupGenerator/component.astro +4 -5
- package/src/tool/placeholderGenerator/component.astro +2 -2
- package/src/tool/readabilityCalculator/component.astro +4 -4
- package/src/tool/serpPixelSimulator/bibliography.astro +7 -0
- package/src/tool/serpPixelSimulator/bibliography.ts +16 -0
- package/src/tool/serpPixelSimulator/component.astro +84 -0
- package/src/tool/serpPixelSimulator/controller.ts +323 -0
- package/src/tool/serpPixelSimulator/entry.ts +30 -0
- package/src/tool/serpPixelSimulator/i18n/de.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/en.ts +213 -0
- package/src/tool/serpPixelSimulator/i18n/es.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/fr.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/id.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/it.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/ja.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/ko.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/nl.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/pl.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/pt.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/ru.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/sv.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/tr.ts +214 -0
- package/src/tool/serpPixelSimulator/i18n/zh.ts +214 -0
- package/src/tool/serpPixelSimulator/index.ts +12 -0
- package/src/tool/serpPixelSimulator/logic.ts +18 -0
- package/src/tool/serpPixelSimulator/seo.astro +12 -0
- package/src/tool/serpPixelSimulator/serp-pixel-simulator.css +335 -0
- package/src/tool/serpPixelSimulator/ui.ts +33 -0
- package/src/tools.ts +2 -2
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SerpPixelSimulatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'simulator-serp-penghitung-piksel';
|
|
7
|
+
const title = 'Simulator SERP dan Penghitung Piksel SEO';
|
|
8
|
+
const description = 'Pratinjau cuplikan pencarian gaya Google secara real-time, ukur lebar judul dan meta deskripsi dalam piksel, dan lihat dengan tepat di mana teks Anda akan dipotong.';
|
|
9
|
+
|
|
10
|
+
const howTo = [
|
|
11
|
+
{
|
|
12
|
+
name: 'Masukkan tag judul',
|
|
13
|
+
text: 'Ketik atau tempel judul halaman yang ingin Anda uji. Pratinjau SERP dan pengukur piksel diperbarui pada setiap ketikan.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'Tambahkan URL yang terlihat',
|
|
17
|
+
text: 'Gunakan domain dan jalur yang realistis agar cuplikan menyerupai hasil yang akan dipindai oleh pencari.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'Tulis deskripsi meta',
|
|
21
|
+
text: 'Tambahkan teks deskripsi dan perhatikan bilah piksel. Saat melebihi lebar visual yang disarankan, pratinjau memotongnya dengan elipsis.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Beralih antara desktop dan seluler',
|
|
25
|
+
text: 'Bandingkan rendering judul dengan lebar kartu desktop atau seluler sebelum menerbitkan metadata.',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const faq = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Mengapa menghitung piksel alih-alih karakter untuk judul SEO?',
|
|
32
|
+
answer: 'Kartu hasil Google dibatasi oleh lebar visual. Judul dengan banyak huruf sempit dapat memuat lebih banyak karakter daripada judul dengan huruf lebar, huruf besar, atau glif yang terlihat tebal. Pengukuran piksel memberikan pratinjau yang lebih akurat dari hasil yang terlihat.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Apakah ini menjamin persis bagaimana Google akan memotong cuplikan saya?',
|
|
36
|
+
answer: 'Tidak. Google dapat menulis ulang tautan judul dan cuplikan, dan rendering dapat bervariasi menurut kueri, perangkat, bahasa, dan eksperimen. Alat ini dirancang sebagai panduan visual praktis untuk menulis metadata yang lebih kecil kemungkinannya untuk dipotong.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'Batas piksel apa yang digunakan simulator?',
|
|
40
|
+
answer: 'Batas default judul desktop adalah 580 px, judul seluler 600 px, dan batas deskripsi meta adalah 920 px. Ini adalah target penulisan, bukan batas resmi Google.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Mengapa pratinjau menambahkan elipsis?',
|
|
44
|
+
answer: 'Saat teks yang diukur melebihi lebar piksel yang tersedia, simulator memotong string pada karakter terakhir yang muat dan menambahkan tiga titik, mencocokkan perilaku praktis yang dibutuhkan tim SEO untuk mendeteksi hilangnya makna.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const ui: SerpPixelSimulatorUI = {
|
|
49
|
+
titleLabel: 'Tag judul',
|
|
50
|
+
titlePlaceholder: 'GameBob | Studio Pengembangan Independen',
|
|
51
|
+
urlLabel: 'URL yang terlihat',
|
|
52
|
+
urlPlaceholder: 'https://www.gamebob.dev/id/',
|
|
53
|
+
descriptionLabel: 'Deskripsi meta',
|
|
54
|
+
descriptionPlaceholder: 'Temukan koleksi alat dan permainan kami yang dirancang untuk meningkatkan alur kerja digital dan hiburan Anda.',
|
|
55
|
+
deviceLabel: 'Mode pratinjau',
|
|
56
|
+
desktopLabel: 'Desktop',
|
|
57
|
+
mobileLabel: 'Seluler',
|
|
58
|
+
titlePixelsLabel: 'Lebar judul',
|
|
59
|
+
descriptionPixelsLabel: 'Lebar deskripsi',
|
|
60
|
+
charactersLabel: 'karakter',
|
|
61
|
+
previewLabel: 'Pratinjau langsung gaya Google',
|
|
62
|
+
tooLongLabel: 'Terlalu lebar',
|
|
63
|
+
goodLabel: 'Pas',
|
|
64
|
+
emptyTitle: 'Judul Anda akan muncul di sini',
|
|
65
|
+
emptyDescription: 'Pratinjau deskripsi meta Anda akan muncul di sini saat Anda mengetik.',
|
|
66
|
+
defaultTitle: 'GameBob | Studio Pengembangan Independen',
|
|
67
|
+
defaultUrl: 'https://www.gamebob.dev/id/',
|
|
68
|
+
defaultDescription: 'Temukan koleksi alat dan permainan kami yang dirancang untuk meningkatkan alur kerja digital dan hiburan Anda.',
|
|
69
|
+
fallbackUrl: 'contoh.co.id',
|
|
70
|
+
fallbackFaviconText: 'G',
|
|
71
|
+
pixelUnit: 'px',
|
|
72
|
+
ellipsis: '...',
|
|
73
|
+
fetchButtonLabel: 'Ambil',
|
|
74
|
+
fetchLoadingLabel: 'Mengambil...',
|
|
75
|
+
fetchSuccessLabel: 'Metadata dimuat dari URL.',
|
|
76
|
+
fetchCorsError: 'Browser tidak dapat membaca halaman ini. Mungkin diblokir oleh CORS, pengalihan, konten campuran, atau aturan jaringan. Anda masih dapat menempelkan atau mengedit metadata secara manual.',
|
|
77
|
+
fetchInvalidUrlError: 'Masukkan URL yang valid sebelum mengambil metadata.',
|
|
78
|
+
fetchNoMetadataError: 'Halaman diambil, tetapi tidak ada judul atau deskripsi meta yang ditemukan.',
|
|
79
|
+
fetchGenericError: 'Metadata tidak dapat diambil dari URL ini. Periksa alamat atau isi kolom secara manual.',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
83
|
+
'@context': 'https://schema.org',
|
|
84
|
+
'@type': 'FAQPage',
|
|
85
|
+
mainEntity: faq.map((item) => ({
|
|
86
|
+
'@type': 'Question',
|
|
87
|
+
name: item.question,
|
|
88
|
+
acceptedAnswer: {
|
|
89
|
+
'@type': 'Answer',
|
|
90
|
+
text: item.answer,
|
|
91
|
+
},
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const howToSchema: WithContext<HowTo> = {
|
|
96
|
+
'@context': 'https://schema.org',
|
|
97
|
+
'@type': 'HowTo',
|
|
98
|
+
name: title,
|
|
99
|
+
description,
|
|
100
|
+
step: howTo.map((step, index) => ({
|
|
101
|
+
'@type': 'HowToStep',
|
|
102
|
+
position: index + 1,
|
|
103
|
+
name: step.name,
|
|
104
|
+
text: step.text,
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'SoftwareApplication',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
applicationCategory: 'BusinessApplication',
|
|
114
|
+
operatingSystem: 'Any',
|
|
115
|
+
offers: {
|
|
116
|
+
'@type': 'Offer',
|
|
117
|
+
price: '0',
|
|
118
|
+
priceCurrency: 'EUR',
|
|
119
|
+
},
|
|
120
|
+
inLanguage: 'id',
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const content: ToolLocaleContent<SerpPixelSimulatorUI> = {
|
|
124
|
+
slug,
|
|
125
|
+
title,
|
|
126
|
+
description,
|
|
127
|
+
ui,
|
|
128
|
+
faqTitle: 'Pertanyaan umum tentang simulator SERP',
|
|
129
|
+
faq,
|
|
130
|
+
bibliographyTitle: 'Dokumentasi hasil pencarian',
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [appSchema, faqSchema, howToSchema],
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Berhenti menebak bagaimana hasil Google Anda akan terlihat',
|
|
138
|
+
level: 2,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'paragraph',
|
|
142
|
+
html: 'Tag judul bisa terlihat sempurna di spreadsheet dan tetap gagal di hasil pencarian. Google tidak mencadangkan ruang berdasarkan jumlah karakter; Google merender teks di dalam kartu visual. Itu berarti <strong>GameBob | Studio Pengembangan Independen</strong> dan judul lain dengan jumlah karakter yang sama dapat menempati lebar yang sangat berbeda tergantung pada huruf, kapitalisasi, tanda baca, dan spasi.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: 'Aturan yang benar benar membantu',
|
|
147
|
+
html: 'Tulis cuplikan sehingga janji penting bertahan dari elipsis. Tempatkan jenis halaman, maksud pencarian, dan alasan terkuat untuk mengklik sebelum batas piksel. Nama merek berguna, tetapi tidak boleh mendorong manfaat utama keluar dari pandangan.',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'title',
|
|
151
|
+
text: 'Apa yang diukur oleh penghitung piksel',
|
|
152
|
+
level: 3,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Elemen', 'Yang penting', 'Cara menggunakan hasilnya'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Tag judul', 'Lebar yang dirender dalam piksel, bukan jumlah karakter mentah', 'Jaga kata kunci utama dan janji klik tetap terlihat sebelum pemotongan.'],
|
|
159
|
+
['URL yang terlihat', 'Kepercayaan visual dan kejelasan topik', 'Gunakan jalur yang dapat dibaca yang memperkuat ke mana hasil mengarah.'],
|
|
160
|
+
['Deskripsi meta', 'Area cuplikan yang lebih luas dengan perilaku tergantung kueri', 'Tempatkan manfaat di depan karena Google dapat mempersingkat atau menulis ulangnya.'],
|
|
161
|
+
['Mode perangkat', 'Kartu desktop dan seluler bisa terasa berbeda', 'Periksa keduanya sebelum menerbitkan metadata untuk halaman penting.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Mengapa batas karakter adalah kebiasaan SEO yang lemah',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Saran tradisional seperti "jaga judul di bawah 60 karakter" memang nyaman, tetapi menyembunyikan masalah sebenarnya. Huruf lebar seperti W dan M, kata huruf besar, pemisah, angka, dan nama merek panjang semuanya mengonsumsi ruang yang berbeda. Pengukuran piksel membuat pertukaran langsung terlihat: Anda dapat melihat apakah sebuah frasa pantas mendapat tempatnya atau mencuri ruang dari pesan yang lebih kuat.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'title',
|
|
175
|
+
text: 'Alur kerja praktis untuk cuplikan yang lebih baik',
|
|
176
|
+
level: 3,
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'list',
|
|
180
|
+
items: [
|
|
181
|
+
'<strong>Mulai dengan maksud:</strong> jelaskan apa yang didapat pengguna, bukan hanya apa nama halamannya.',
|
|
182
|
+
'<strong>Uji judul lengkap:</strong> tempelkan ke simulator dan perhatikan bilahnya sebelum menerbitkan.',
|
|
183
|
+
'<strong>Hapus kata-kata lemah:</strong> jika bilah berubah merah, hapus kata pengisi sebelum memotong istilah berharga.',
|
|
184
|
+
'<strong>Periksa elipsis:</strong> jika pratinjau yang dipotong kehilangan makna, tulis ulang judul alih-alih menerima pemotongan.',
|
|
185
|
+
'<strong>Ulangi untuk deskripsi:</strong> pastikan kalimat pertama membawa proposisi nilai dengan sendirinya.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'diagnostic',
|
|
190
|
+
variant: 'info',
|
|
191
|
+
title: 'Saat bilah berubah merah',
|
|
192
|
+
html: 'Bilah merah bukan peringatan penalti. Itu berarti teks saat ini lebih lebar dari target visual yang dipilih, jadi simulator memotongnya dengan titik. Perlakukan itu sebagai sinyal editorial: putuskan apakah kata-kata tersembunyi dapat dibuang, atau apakah cuplikan membutuhkan struktur yang lebih tajam.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Batasan, penulisan ulang, dan harapan realistis',
|
|
197
|
+
level: 3,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'paragraph',
|
|
201
|
+
html: 'Tidak ada simulator yang dapat menjamin cuplikan persis yang akan ditampilkan Google. Google dapat menulis ulang tautan judul, menebalkan istilah kueri, memilih teks halaman alih-alih deskripsi meta, atau menampilkan cuplikan berbeda untuk pencarian yang berbeda. Alat ini paling baik digunakan sebagai langkah penulisan dan QA cepat: alat ini mendeteksi kelebihan visual yang jelas sebelum halaman mencapai produksi.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'summary',
|
|
205
|
+
title: 'Penggunaan terbaik simulator SERP ini',
|
|
206
|
+
items: [
|
|
207
|
+
'Gunakan bilah piksel untuk mendeteksi kelebihan visual sebelum menerbitkan metadata.',
|
|
208
|
+
'Jaga maksud pencarian utama dan janji klik tetap terlihat sebelum elipsis apa pun.',
|
|
209
|
+
'Ambil metadata dari URL yang mengizinkan CORS, lalu edit hasilnya secara manual jika diperlukan.',
|
|
210
|
+
'Anggap pratinjau sebagai panduan penulisan, karena Google masih dapat menulis ulang cuplikan per kueri.',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SerpPixelSimulatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'simulatore-serp-contatore-pixel';
|
|
7
|
+
const title = 'Simulatore SERP e Contatore Pixel SEO';
|
|
8
|
+
const description = 'Visualizza in anteprima gli snippet di ricerca in stile Google in tempo reale, misura la larghezza in pixel del titolo e della meta description e scopri esattamente dove il testo verrà troncato.';
|
|
9
|
+
|
|
10
|
+
const howTo = [
|
|
11
|
+
{
|
|
12
|
+
name: 'Inserisci il tag title',
|
|
13
|
+
text: 'Digita o incolla il titolo della pagina che vuoi testare. L\'anteprima SERP e il misuratore di pixel si aggiornano a ogni tasto premuto.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'Aggiungi l\'URL visibile',
|
|
17
|
+
text: 'Usa un dominio e un percorso realistici in modo che lo snippet assomigli al risultato che un utente esaminerebbe.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'Scrivi la meta description',
|
|
21
|
+
text: 'Aggiungi il testo della descrizione e osserva la barra dei pixel. Quando supera la larghezza visiva consigliata, l\'anteprima la tronca con i puntini di sospensione.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Passa da desktop a mobile',
|
|
25
|
+
text: 'Confronta la resa del titolo con la larghezza della scheda desktop o mobile prima di pubblicare i metadati.',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const faq = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Perché contare i pixel invece dei caratteri per i titoli SEO?',
|
|
32
|
+
answer: 'Le schede dei risultati di Google sono vincolate dalla larghezza visiva. Un titolo con molte lettere strette può contenere più caratteri di uno con lettere larghe, maiuscole o glifi dall\'aspetto marcato. La misurazione in pixel offre un\'anteprima più fedele del risultato visibile.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Questo garantisce esattamente come Google troncherà il mio snippet?',
|
|
36
|
+
answer: 'No. Google può riscrivere i link del titolo e gli snippet, e la resa può variare in base alla query, al dispositivo, alla lingua e agli esperimenti. Lo strumento è pensato come una guida visiva pratica per scrivere metadati con meno probabilità di essere tagliati.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'Quali limiti di pixel utilizza il simulatore?',
|
|
40
|
+
answer: 'Il limite predefinito del titolo su desktop è di 580 px, su mobile di 600 px e il limite della meta description è di 920 px. Sono obiettivi di scrittura, non limiti ufficiali di Google.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Perché l\'anteprima aggiunge i puntini di sospensione?',
|
|
44
|
+
answer: 'Quando il testo misurato supera la larghezza in pixel disponibile, il simulatore tronca la stringa all\'ultimo carattere che rientra e aggiunge tre puntini, riproducendo il comportamento pratico di cui i team SEO hanno bisogno per individuare la perdita di significato.',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const ui: SerpPixelSimulatorUI = {
|
|
49
|
+
titleLabel: 'Tag title',
|
|
50
|
+
titlePlaceholder: 'GameBob | Studio di Sviluppo Indipendente',
|
|
51
|
+
urlLabel: 'URL visibile',
|
|
52
|
+
urlPlaceholder: 'https://www.gamebob.dev/it/',
|
|
53
|
+
descriptionLabel: 'Meta description',
|
|
54
|
+
descriptionPlaceholder: 'Scopri la nostra collezione di strumenti e giochi pensati per migliorare il tuo flusso di lavoro digitale e l\'intrattenimento.',
|
|
55
|
+
deviceLabel: 'Modalità anteprima',
|
|
56
|
+
desktopLabel: 'Desktop',
|
|
57
|
+
mobileLabel: 'Mobile',
|
|
58
|
+
titlePixelsLabel: 'Larghezza titolo',
|
|
59
|
+
descriptionPixelsLabel: 'Larghezza descrizione',
|
|
60
|
+
charactersLabel: 'caratteri',
|
|
61
|
+
previewLabel: 'Anteprima dal vivo in stile Google',
|
|
62
|
+
tooLongLabel: 'Troppo larga',
|
|
63
|
+
goodLabel: 'Ok',
|
|
64
|
+
emptyTitle: 'Il tuo titolo apparirà qui',
|
|
65
|
+
emptyDescription: 'L\'anteprima della tua meta description apparirà qui mentre digiti.',
|
|
66
|
+
defaultTitle: 'GameBob | Studio di Sviluppo Indipendente',
|
|
67
|
+
defaultUrl: 'https://www.gamebob.dev/it/',
|
|
68
|
+
defaultDescription: 'Scopri la nostra collezione di strumenti e giochi pensati per migliorare il tuo flusso di lavoro digitale e l\'intrattenimento.',
|
|
69
|
+
fallbackUrl: 'esempio.com',
|
|
70
|
+
fallbackFaviconText: 'G',
|
|
71
|
+
pixelUnit: 'px',
|
|
72
|
+
ellipsis: '...',
|
|
73
|
+
fetchButtonLabel: 'Recupera',
|
|
74
|
+
fetchLoadingLabel: 'Recupero in corso...',
|
|
75
|
+
fetchSuccessLabel: 'Metadati caricati dall\'URL.',
|
|
76
|
+
fetchCorsError: 'Il browser non ha potuto leggere questa pagina. Potrebbe essere bloccata da CORS, un reindirizzamento, contenuti misti o una regola di rete. Puoi comunque incollare o modificare i metadati manualmente.',
|
|
77
|
+
fetchInvalidUrlError: 'Inserisci un URL valido prima di recuperare i metadati.',
|
|
78
|
+
fetchNoMetadataError: 'La pagina è stata recuperata, ma non è stato trovato alcun titolo o meta description.',
|
|
79
|
+
fetchGenericError: 'Impossibile recuperare i metadati da questo URL. Verifica l\'indirizzo o compila i campi manualmente.',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
83
|
+
'@context': 'https://schema.org',
|
|
84
|
+
'@type': 'FAQPage',
|
|
85
|
+
mainEntity: faq.map((item) => ({
|
|
86
|
+
'@type': 'Question',
|
|
87
|
+
name: item.question,
|
|
88
|
+
acceptedAnswer: {
|
|
89
|
+
'@type': 'Answer',
|
|
90
|
+
text: item.answer,
|
|
91
|
+
},
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const howToSchema: WithContext<HowTo> = {
|
|
96
|
+
'@context': 'https://schema.org',
|
|
97
|
+
'@type': 'HowTo',
|
|
98
|
+
name: title,
|
|
99
|
+
description,
|
|
100
|
+
step: howTo.map((step, index) => ({
|
|
101
|
+
'@type': 'HowToStep',
|
|
102
|
+
position: index + 1,
|
|
103
|
+
name: step.name,
|
|
104
|
+
text: step.text,
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'SoftwareApplication',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
applicationCategory: 'BusinessApplication',
|
|
114
|
+
operatingSystem: 'Any',
|
|
115
|
+
offers: {
|
|
116
|
+
'@type': 'Offer',
|
|
117
|
+
price: '0',
|
|
118
|
+
priceCurrency: 'EUR',
|
|
119
|
+
},
|
|
120
|
+
inLanguage: 'it',
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const content: ToolLocaleContent<SerpPixelSimulatorUI> = {
|
|
124
|
+
slug,
|
|
125
|
+
title,
|
|
126
|
+
description,
|
|
127
|
+
ui,
|
|
128
|
+
faqTitle: 'Domande frequenti sul simulatore SERP',
|
|
129
|
+
faq,
|
|
130
|
+
bibliographyTitle: 'Documentazione sui risultati di ricerca',
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [appSchema, faqSchema, howToSchema],
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Smetti di indovinare come apparirà il tuo risultato su Google',
|
|
138
|
+
level: 2,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'paragraph',
|
|
142
|
+
html: 'Un tag title può sembrare perfetto in un foglio di calcolo e comunque fallire nel risultato di ricerca. Google non riserva spazio in base al numero di caratteri; mostra il testo all\'interno di una scheda visiva. Questo significa che <strong>GameBob | Studio di Sviluppo Indipendente</strong> e un altro titolo con lo stesso numero di caratteri possono occupare larghezze molto diverse a seconda delle lettere, delle maiuscole, della punteggiatura e della spaziatura.',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: 'La regola che aiuta davvero',
|
|
147
|
+
html: 'Scrivi lo snippet in modo che la promessa importante sopravviva ai puntini di sospensione. Metti il tipo di pagina, l\'intento di ricerca e il motivo più forte per cliccare prima del limite di pixel. I nomi dei marchi sono utili, ma non devono spingere il beneficio principale fuori dalla vista.',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'title',
|
|
151
|
+
text: 'Cosa misura il contatore di pixel',
|
|
152
|
+
level: 3,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Elemento', 'Cosa conta', 'Come usare il risultato'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Tag title', 'Larghezza renderizzata in pixel, non il conteggio grezzo dei caratteri', 'Mantieni la parola chiave principale e la promessa di clic visibili prima del troncamento.'],
|
|
159
|
+
['URL visibile', 'Fiducia visiva e chiarezza dell\'argomento', 'Usa un percorso leggibile che rafforzi la destinazione del risultato.'],
|
|
160
|
+
['Meta description', 'Un\'area snippet più ampia con comportamento dipendente dalla query', 'Metti il beneficio in primo piano perché Google potrebbe accorciarla o riscriverla.'],
|
|
161
|
+
['Modalità dispositivo', 'Le schede desktop e mobile possono sembrare diverse', 'Controlla entrambe prima di pubblicare i metadati per le pagine importanti.'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: 'Perché i limiti di caratteri sono una cattiva abitudine SEO',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: 'Il consiglio tradizionale come "mantieni i titoli sotto i 60 caratteri" è comodo, ma nasconde il vero problema. Lettere larghe come W e M, parole in maiuscolo, separatori, numeri e nomi di marca lunghi consumano tutti spazi diversi. La misurazione in pixel rende il compromesso immediatamente visibile: puoi vedere se una frase si guadagna il suo posto o ruba spazio a un messaggio più forte.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'title',
|
|
175
|
+
text: 'Un flusso di lavoro pratico per snippet migliori',
|
|
176
|
+
level: 3,
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'list',
|
|
180
|
+
items: [
|
|
181
|
+
'<strong>Inizia con l\'intento:</strong> descrivi cosa ottiene l\'utente, non solo come si chiama la pagina.',
|
|
182
|
+
'<strong>Testa il titolo completo:</strong> incollalo nel simulatore e osserva la barra prima di pubblicare.',
|
|
183
|
+
'<strong>Rimuovi le parole deboli:</strong> se la barra diventa rossa, elimina i riempitivi prima di tagliare i termini preziosi.',
|
|
184
|
+
'<strong>Controlla i puntini di sospensione:</strong> se l\'anteprima troncata perde significato, riscrivi il titolo invece di accettare il taglio.',
|
|
185
|
+
'<strong>Ripeti per la descrizione:</strong> assicurati che la prima frase porti da sola la proposta di valore.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'diagnostic',
|
|
190
|
+
variant: 'info',
|
|
191
|
+
title: 'Quando la barra diventa rossa',
|
|
192
|
+
html: 'Una barra rossa non è un avviso di penalizzazione. Significa che il testo attuale è più largo dell\'obiettivo visivo selezionato, quindi il simulatore lo tronca con i puntini. Consideralo come un segnale editoriale: decidi se le parole nascoste sono sacrificabili o se lo snippet ha bisogno di una struttura più affilata.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Limiti, riscritture e aspettative realistiche',
|
|
197
|
+
level: 3,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'paragraph',
|
|
201
|
+
html: 'Nessun simulatore può garantire lo snippet esatto che Google mostrerà. Google può riscrivere i link del titolo, mettere in grassetto i termini della query, scegliere il testo della pagina invece della meta description o mostrare snippet diversi per ricerche diverse. Questo strumento è più utile come fase rapida di scrittura e controllo qualità: rileva gli overflow visivi evidenti prima che la pagina arrivi in produzione.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'summary',
|
|
205
|
+
title: 'Miglior uso di questo simulatore SERP',
|
|
206
|
+
items: [
|
|
207
|
+
'Usa la barra dei pixel per individuare gli overflow visivi prima di pubblicare i metadati.',
|
|
208
|
+
'Mantieni l\'intento di ricerca principale e la promessa di clic visibili prima di qualsiasi ellissi.',
|
|
209
|
+
'Recupera i metadati dagli URL che consentono CORS, poi modifica il risultato manualmente se necessario.',
|
|
210
|
+
'Considera l\'anteprima come una guida alla scrittura, perché Google può comunque riscrivere gli snippet per ogni query.',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SerpPixelSimulatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'serp-pixel-simulator';
|
|
7
|
+
const title = 'SERPシミュレーター & SEOピクセルカウンター';
|
|
8
|
+
const description = 'Google検索結果のスニペットをリアルタイムでプレビューし、タイトルとメタディスクリプションのピクセル幅を測定して、テキストがどこで切り詰められるかを正確に確認できます。';
|
|
9
|
+
|
|
10
|
+
const howTo = [
|
|
11
|
+
{
|
|
12
|
+
name: 'タイトルタグを入力する',
|
|
13
|
+
text: 'テストしたいページタイトルを入力または貼り付けます。SERPプレビューとピクセルメーターはキー入力ごとに更新されます。',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: '表示URLを追加する',
|
|
17
|
+
text: '検索者がスキャンする結果に似せるために、現実的なドメインとパスを使用します。',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'メタディスクリプションを書く',
|
|
21
|
+
text: '説明文を追加し、ピクセルバーを確認します。推奨される表示幅を超えると、プレビューは省略記号で切り詰めます。',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'デスクトップとモバイルを切り替える',
|
|
25
|
+
text: 'メタデータを公開する前に、デスクトップまたはモバイルのカード幅でタイトルの表示を比較します。',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const faq = [
|
|
30
|
+
{
|
|
31
|
+
question: 'SEOタイトルに文字数ではなくピクセル数を使う理由は?',
|
|
32
|
+
answer: 'Google検索結果カードは表示幅によって制約されます。細い文字が多いタイトルは、太い文字や大文字、太字に見えるグリフを含むタイトルよりも多くの文字を収めることができます。ピクセル測定は、表示される結果のより正確なプレビューを提供します。',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'これはGoogleがスニペットをどのように切り詰めるかを正確に保証しますか?',
|
|
36
|
+
answer: 'いいえ。Googleはタイトルリンクやスニペットを書き換えることがあり、表示はクエリ、デバイス、言語、実験によって異なる場合があります。このツールは、切り詰められる可能性の低いメタデータを作成するための実用的な視覚的ガイドとして設計されています。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'シミュレーターはどのようなピクセル制限を使用していますか?',
|
|
40
|
+
answer: 'デスクトップのデフォルトのタイトル制限は580px、モバイルのタイトル制限は600px、メタディスクリプションの制限は920pxです。これらは執筆目標であり、Google公式の制限ではありません。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'プレビューが省略記号を追加するのはなぜですか?',
|
|
44
|
+
answer: '測定されたテキストが利用可能なピクセル幅を超えると、シミュレーターは収まる最後の文字で文字列を切り詰め、3つのドットを追加します。これはSEOチームが意味の喪失を検出するために必要な実用的な動作と一致します。',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const ui: SerpPixelSimulatorUI = {
|
|
49
|
+
titleLabel: 'タイトルタグ',
|
|
50
|
+
titlePlaceholder: 'GameBob | インディー開発スタジオ',
|
|
51
|
+
urlLabel: '表示URL',
|
|
52
|
+
urlPlaceholder: 'https://www.gamebob.dev/ja/',
|
|
53
|
+
descriptionLabel: 'メタディスクリプション',
|
|
54
|
+
descriptionPlaceholder: 'デジタルワークフローとエンターテイメントを向上させるために設計されたツールとゲームのコレクションをご覧ください。',
|
|
55
|
+
deviceLabel: 'プレビューモード',
|
|
56
|
+
desktopLabel: 'デスクトップ',
|
|
57
|
+
mobileLabel: 'モバイル',
|
|
58
|
+
titlePixelsLabel: 'タイトルの幅',
|
|
59
|
+
descriptionPixelsLabel: '説明の幅',
|
|
60
|
+
charactersLabel: '文字',
|
|
61
|
+
previewLabel: 'Googleスタイルのライブプレビュー',
|
|
62
|
+
tooLongLabel: '長すぎます',
|
|
63
|
+
goodLabel: '収まります',
|
|
64
|
+
emptyTitle: 'タイトルがここに表示されます',
|
|
65
|
+
emptyDescription: 'メタディスクリプションのプレビューは入力に応じてここに表示されます。',
|
|
66
|
+
defaultTitle: 'GameBob | インディー開発スタジオ',
|
|
67
|
+
defaultUrl: 'https://www.gamebob.dev/ja/',
|
|
68
|
+
defaultDescription: 'デジタルワークフローとエンターテイメントを向上させるために設計されたツールとゲームのコレクションをご覧ください。',
|
|
69
|
+
fallbackUrl: 'example.co.jp',
|
|
70
|
+
fallbackFaviconText: 'G',
|
|
71
|
+
pixelUnit: 'px',
|
|
72
|
+
ellipsis: '...',
|
|
73
|
+
fetchButtonLabel: '取得',
|
|
74
|
+
fetchLoadingLabel: '取得中...',
|
|
75
|
+
fetchSuccessLabel: 'URLからメタデータを読み込みました。',
|
|
76
|
+
fetchCorsError: 'ブラウザがこのページを読み取れませんでした。CORS、リダイレクト、混在コンテンツ、またはネットワークルールによってブロックされている可能性があります。手動でメタデータを貼り付けまたは編集することはできます。',
|
|
77
|
+
fetchInvalidUrlError: 'メタデータを取得する前に有効なURLを入力してください。',
|
|
78
|
+
fetchNoMetadataError: 'ページは取得されましたが、タイトルまたはメタディスクリプションが見つかりませんでした。',
|
|
79
|
+
fetchGenericError: 'このURLからメタデータを取得できませんでした。アドレスを確認するか、手動でフィールドに入力してください。',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
83
|
+
'@context': 'https://schema.org',
|
|
84
|
+
'@type': 'FAQPage',
|
|
85
|
+
mainEntity: faq.map((item) => ({
|
|
86
|
+
'@type': 'Question',
|
|
87
|
+
name: item.question,
|
|
88
|
+
acceptedAnswer: {
|
|
89
|
+
'@type': 'Answer',
|
|
90
|
+
text: item.answer,
|
|
91
|
+
},
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const howToSchema: WithContext<HowTo> = {
|
|
96
|
+
'@context': 'https://schema.org',
|
|
97
|
+
'@type': 'HowTo',
|
|
98
|
+
name: title,
|
|
99
|
+
description,
|
|
100
|
+
step: howTo.map((step, index) => ({
|
|
101
|
+
'@type': 'HowToStep',
|
|
102
|
+
position: index + 1,
|
|
103
|
+
name: step.name,
|
|
104
|
+
text: step.text,
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'SoftwareApplication',
|
|
111
|
+
name: title,
|
|
112
|
+
description,
|
|
113
|
+
applicationCategory: 'BusinessApplication',
|
|
114
|
+
operatingSystem: 'Any',
|
|
115
|
+
offers: {
|
|
116
|
+
'@type': 'Offer',
|
|
117
|
+
price: '0',
|
|
118
|
+
priceCurrency: 'EUR',
|
|
119
|
+
},
|
|
120
|
+
inLanguage: 'ja',
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export const content: ToolLocaleContent<SerpPixelSimulatorUI> = {
|
|
124
|
+
slug,
|
|
125
|
+
title,
|
|
126
|
+
description,
|
|
127
|
+
ui,
|
|
128
|
+
faqTitle: 'SERPシミュレーターに関するよくある質問',
|
|
129
|
+
faq,
|
|
130
|
+
bibliographyTitle: '検索結果に関するドキュメント',
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [appSchema, faqSchema, howToSchema],
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'title',
|
|
137
|
+
text: 'Google検索結果がどう見えるか推測するのをやめましょう',
|
|
138
|
+
level: 2,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'paragraph',
|
|
142
|
+
html: 'タイトルタグはスプレッドシートでは完璧に見えても、検索結果では失敗することがあります。Googleは文字数でスペースを確保するのではなく、視覚的なカード内にテキストをレンダリングします。つまり、<strong>GameBob | インディー開発スタジオ</strong>と同じ文字数の別のタイトルでも、文字、大文字/小文字、句読点、間隔によって非常に異なる幅を占める可能性があります。',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'tip',
|
|
146
|
+
title: '本当に役立つルール',
|
|
147
|
+
html: '重要な約束が省略記号を生き延びるようにスニペットを書きます。ページタイプ、検索意図、クリックする最も強力な理由をピクセル制限の前に配置します。ブランド名は便利ですが、主要な利点を視界から押し出してはいけません。',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'title',
|
|
151
|
+
text: 'ピクセルカウンターが測定するもの',
|
|
152
|
+
level: 3,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['要素', '重要なこと', '結果の使い方'],
|
|
157
|
+
rows: [
|
|
158
|
+
['タイトルタグ', '生の文字数ではなく、ピクセル単位のレンダリング幅', '切り詰めの前に主要キーワードとクリックの約束を表示されたままにします。'],
|
|
159
|
+
['表示URL', '視覚的な信頼性とトピックの明確さ', '結果の行き先を補強する読みやすいパスを使用します。'],
|
|
160
|
+
['メタディスクリプション', 'クエリ依存の動作を持つより広いスニペット領域', 'Googleが短縮または書き換える可能性があるため、利点を前に配置します。'],
|
|
161
|
+
['デバイスモード', 'デスクトップとモバイルのカードは異なる印象を与える可能性があります', '重要なページのメタデータを公開する前に両方を確認します。'],
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'title',
|
|
166
|
+
text: '文字数制限が弱いSEO習慣である理由',
|
|
167
|
+
level: 3,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'paragraph',
|
|
171
|
+
html: '「タイトルは60文字以内に収める」という従来のアドバイスは便利ですが、本当の問題を隠しています。WやMのような幅の広い文字、大文字の単語、区切り文字、数字、長いブランド名はすべて異なるスペースを消費します。ピクセル測定はトレードオフを即座に可視化します:フレーズがその場所に値するか、より強いメッセージからスペースを奪っているかを確認できます。',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'title',
|
|
175
|
+
text: 'より良いスニペットのための実践的なワークフロー',
|
|
176
|
+
level: 3,
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'list',
|
|
180
|
+
items: [
|
|
181
|
+
'<strong>意図から始める:</strong> ユーザーが得るものを説明し、ページの名前だけではありません。',
|
|
182
|
+
'<strong>完全なタイトルをテストする:</strong> 公開前にシミュレーターに貼り付けてバーを確認します。',
|
|
183
|
+
'<strong>弱い単語を削除する:</strong> バーが赤くなったら、貴重な用語を切り取る前にフィラーを削除します。',
|
|
184
|
+
'<strong>省略記号を確認する:</strong> 切り詰められたプレビューが意味を失う場合は、切り取りを受け入れるのではなくタイトルを書き直します。',
|
|
185
|
+
'<strong>説明について繰り返す:</strong> 最初の文だけで価値提案を伝えられるようにします。',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'diagnostic',
|
|
190
|
+
variant: 'info',
|
|
191
|
+
title: 'バーが赤くなったとき',
|
|
192
|
+
html: '赤いバーはペナルティ警告ではありません。現在のテキストが選択された視覚的ターゲットよりも広いため、シミュレーターがドットで切り詰めていることを意味します。これを編集上のシグナルとして扱います:隠れた単語が捨ててもよいものか、スニペットがよりシャープな構造を必要としているかを判断します。',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: '制限、書き換え、現実的な期待',
|
|
197
|
+
level: 3,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'paragraph',
|
|
201
|
+
html: 'どのシミュレーターもGoogleが表示する正確なスニペットを保証することはできません。Googleはタイトルリンクを書き換えたり、クエリ用語を太字にしたり、メタディスクリプションの代わりにページテキストを選択したり、異なる検索に対して異なるスニペットを表示したりする場合があります。このツールは、迅速な執筆とQAのステップとして最適です:ページが本番環境に到達する前に明らかな視覚的オーバーフローを検出します。',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
type: 'summary',
|
|
205
|
+
title: 'このSERPシミュレーターの最適な使い方',
|
|
206
|
+
items: [
|
|
207
|
+
'メタデータを公開する前に視覚的オーバーフローを検出するためにピクセルバーを使用します。',
|
|
208
|
+
'主な検索意図とクリックの約束を省略記号の前に表示されたままにします。',
|
|
209
|
+
'CORSを許可するURLからメタデータを取得し、必要に応じて手動で結果を編集します。',
|
|
210
|
+
'Googleがクエリごとにスニペットを書き換える可能性があるため、プレビューを執筆ガイドとして扱います。',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|