[{"data":1,"prerenderedAt":1743},["ShallowReactive",2],{"blog-index-en":3},[4,133,315,566,916,1199,1298,1413,1604],{"id":5,"title":6,"body":7,"description":115,"extension":116,"meta":117,"navigation":128,"path":129,"seo":130,"stem":131,"__hash__":132},"blog\u002Fblog\u002Fen\u002Fai-keyword-clustering-guide.md","AI Keyword Clustering: Group Keywords by Search Intent",{"type":8,"value":9,"toc":105},"minimark",[10,14,24,29,32,36,39,43,62,67,71,74,78,81,85,92,95],[11,12,6],"h1",{"id":13},"ai-keyword-clustering-group-keywords-by-search-intent",[15,16,17,18,23],"p",{},"Keyword research produces long lists. Without clustering, those lists are hard to act on. AI-powered semantic clustering groups keywords by their underlying meaning, helping you plan content silos, pillar pages, and topic clusters. Use our ",[19,20,22],"a",{"href":21},"\u002Ftools\u002Fsemantic-keyword-clusterer","AI Semantic Keyword Clusterer"," to organize your keywords.",[25,26,28],"h2",{"id":27},"why-cluster-keywords","Why Cluster Keywords?",[15,30,31],{},"Raw keyword lists are noisy. \"JSON-LD generator,\" \"schema markup tool,\" and \"structured data creator\" all express the same need in different words. Clustering reveals these patterns so you can target groups of related keywords with a single comprehensive page instead of creating thin content for each variation.",[25,33,35],{"id":34},"how-semantic-clustering-works","How Semantic Clustering Works",[15,37,38],{},"Traditional clustering uses word overlap (TF-IDF). Modern approaches use embedding models that understand meaning: \"car repair\" and \"auto mechanic\" are close even though they share no words. Our clusterer runs an embedding model directly in your browser, so no data leaves your machine.",[25,40,42],{"id":41},"how-to-use-the-keyword-clusterer","How to Use the Keyword Clusterer",[44,45,46,50,53,56,59],"ol",{},[47,48,49],"li",{},"Paste your keyword list (up to 200 keywords)",[47,51,52],{},"Choose the number of clusters you want",[47,54,55],{},"Click \"Run Clustering\"",[47,57,58],{},"Review clusters, each labeled with a topic name and search intent",[47,60,61],{},"Export results as CSV for your content plan",[15,63,64,65],{},"Try it now: ",[19,66,22],{"href":21},[25,68,70],{"id":69},"lexical-fallback","Lexical Fallback",[15,72,73],{},"If your device does not support WebGPU or the model download fails, the tool falls back to a lexical clustering algorithm. It still produces useful groupings based on shared terms and word patterns.",[25,75,77],{"id":76},"using-clusters-for-content-strategy","Using Clusters for Content Strategy",[15,79,80],{},"Each cluster becomes a pillar page. Keywords within the cluster become subtopics and supporting content. The intent label (commercial, informational, comparison, local) guides content format.",[25,82,84],{"id":83},"key-takeaways","Key Takeaways",[15,86,87,88,91],{},"Clustering transforms keyword lists into actionable content plans. Use our ",[19,89,90],{"href":21},"AI Keyword Clusterer",", group by intent, and build pillar pages around each cluster.",[93,94],"hr",{},[15,96,97],{},[98,99,100,101,104],"em",{},"Cluster your keywords with our ",[19,102,103],{"href":21},"free AI Keyword Clusterer",".",{"title":106,"searchDepth":107,"depth":107,"links":108},"",2,[109,110,111,112,113,114],{"id":27,"depth":107,"text":28},{"id":34,"depth":107,"text":35},{"id":41,"depth":107,"text":42},{"id":69,"depth":107,"text":70},{"id":76,"depth":107,"text":77},{"id":83,"depth":107,"text":84},"Learn how to use AI-powered semantic keyword clustering to group keywords by meaning. Covers TF-IDF, embeddings, and browser-side AI models.","md",{"date":118,"category":119,"tags":120,"relatedTools":125,"image":127},"2026-05-10","ai-seo",[121,122,123,124],"keyword clustering","ai","embeddings","search intent",[126],"semantic-keyword-clusterer","\u002Fsite-icon.png",true,"\u002Fblog\u002Fen\u002Fai-keyword-clustering-guide",{"title":6,"description":115},"blog\u002Fen\u002Fai-keyword-clustering-guide","xna0Sbkl9cBWith7gnRJrjQesX8Gmxw04FTiKEldgaE",{"id":134,"title":135,"body":136,"description":300,"extension":116,"meta":301,"navigation":128,"path":311,"seo":312,"stem":313,"__hash__":314},"blog\u002Fblog\u002Fen\u002Fcanonical-tags-guide.md","Canonical Tags: How to Avoid Duplicate Content Problems",{"type":8,"value":137,"toc":292},[138,141,149,153,156,200,203,207,228,232,235,239,247,251,258,264,270,272,278,280,288],[11,139,135],{"id":140},"canonical-tags-how-to-avoid-duplicate-content-problems",[15,142,143,144,148],{},"Duplicate content confuses search engines. When the same content exists at multiple URLs, Google must guess which version to rank. A canonical tag tells Google: \"This is the primary version. Consolidate all signals here.\" Use our ",[19,145,147],{"href":146},"\u002Ftools\u002Fcanonical-tag-generator","Canonical Tag Generator"," to create correct canonical links.",[25,150,152],{"id":151},"what-is-a-canonical-tag","What Is a Canonical Tag?",[15,154,155],{},"A canonical tag is a link element in the HTML head:",[157,158,162],"pre",{"className":159,"code":160,"language":161,"meta":106,"style":106},"language-html shiki shiki-themes github-light github-dark","\u003Clink rel=\"canonical\" href=\"https:\u002F\u002Fexample.com\u002Foriginal-page\" \u002F>\n","html",[163,164,165],"code",{"__ignoreMap":106},[166,167,170,174,178,182,185,189,192,194,197],"span",{"class":168,"line":169},"line",1,[166,171,173],{"class":172},"sVt8B","\u003C",[166,175,177],{"class":176},"s9eBZ","link",[166,179,181],{"class":180},"sScJk"," rel",[166,183,184],{"class":172},"=",[166,186,188],{"class":187},"sZZnC","\"canonical\"",[166,190,191],{"class":180}," href",[166,193,184],{"class":172},[166,195,196],{"class":187},"\"https:\u002F\u002Fexample.com\u002Foriginal-page\"",[166,198,199],{"class":172}," \u002F>\n",[15,201,202],{},"It consolidates ranking signals and prevents duplicate content issues without redirecting users.",[25,204,206],{"id":205},"when-to-use-canonical-tags","When to Use Canonical Tags",[208,209,210,213,216,219,222,225],"ul",{},[47,211,212],{},"Product pages with multiple URL variants (sort, filter, color)",[47,214,215],{},"Pages accessible via both HTTP and HTTPS",[47,217,218],{},"Pages with and without trailing slashes",[47,220,221],{},"Syndicated content published on other sites",[47,223,224],{},"AMP page versions pointing to the standard page",[47,226,227],{},"Print-friendly or PDF versions of pages",[25,229,231],{"id":230},"canonical-vs-301-redirect","Canonical vs 301 Redirect",[15,233,234],{},"Canonical is a soft signal. Search engines may ignore it. A 301 redirect is a hard directive. Use 301s when the old URL should never be accessed. Use canonical when both URLs need to remain accessible but one is preferred.",[25,236,238],{"id":237},"canonical-and-hreflang","Canonical and Hreflang",[15,240,241,242,246],{},"Canonical and hreflang must agree. If your canonical points to the English page but your hreflang says the page is Chinese, you have a conflict. Use our ",[19,243,245],{"href":244},"\u002Ftools\u002Fcanonical-hreflang-conflict-checker","Canonical + Hreflang Conflict Checker"," to detect these issues.",[25,248,250],{"id":249},"common-mistakes","Common Mistakes",[15,252,253,257],{},[254,255,256],"strong",{},"Self-referencing canonical",": Always include a canonical tag on the canonical page itself.",[15,259,260,263],{},[254,261,262],{},"Canonical chains",": Page A canonicals to B, B canonicals to C. Always point directly to the final canonical URL.",[15,265,266,269],{},[254,267,268],{},"Canonicalizing to a redirect",": The canonical target should return a 200 status, not a redirect.",[25,271,84],{"id":83},[15,273,274,275,104],{},"Use canonical tags to consolidate duplicate pages. Always include self-referencing canonicals. Avoid canonical chains. Check hreflang compatibility with our ",[19,276,277],{"href":244},"Conflict Checker",[93,279],{},[15,281,282],{},[98,283,284,285,104],{},"Generate canonical tags with our ",[19,286,287],{"href":146},"free Canonical Generator",[289,290,291],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":107,"depth":107,"links":293},[294,295,296,297,298,299],{"id":151,"depth":107,"text":152},{"id":205,"depth":107,"text":206},{"id":230,"depth":107,"text":231},{"id":237,"depth":107,"text":238},{"id":249,"depth":107,"text":250},{"id":83,"depth":107,"text":84},"A practical guide to canonical tags. Learn when to use them, how to set them correctly, and how to check for canonical-hreflang conflicts.",{"date":302,"category":303,"tags":304,"relatedTools":308,"image":127},"2026-04-28","technical-seo",[305,306,307],"canonical","duplicate content","rel=canonical",[309,310],"canonical-tag-generator","canonical-hreflang-conflict-checker","\u002Fblog\u002Fen\u002Fcanonical-tags-guide",{"title":135,"description":300},"blog\u002Fen\u002Fcanonical-tags-guide","4m4CSIl5EEtbeY8z5IP3JDKmrnsc58BITG6kopmFfVw",{"id":316,"title":317,"body":318,"description":551,"extension":116,"meta":552,"navigation":128,"path":562,"seo":563,"stem":564,"__hash__":565},"blog\u002Fblog\u002Fen\u002Ffaq-schema-rich-results.md","FAQ Schema: How to Get Rich Results in Google",{"type":8,"value":319,"toc":543},[320,323,331,335,338,342,468,472,475,477,483,489,509,515,519,522,524,530,532,540],[11,321,317],{"id":322},"faq-schema-how-to-get-rich-results-in-google",[15,324,325,326,330],{},"FAQ schema produces expandable accordion results in Google search. These rich results take up more SERP space and can significantly increase CTR. Use our ",[19,327,329],{"href":328},"\u002Ftools\u002Fjson-ld-generator","JSON-LD Generator"," to create valid markup in seconds.",[25,332,334],{"id":333},"how-faq-rich-results-work","How FAQ Rich Results Work",[15,336,337],{},"When Google detects valid FAQPage schema, it may display your questions as expandable items beneath your search listing. Users click to reveal answers directly in the SERP. This gives your result more visual weight and often more clicks.",[25,339,341],{"id":340},"json-ld-format","JSON-LD Format",[157,343,347],{"className":344,"code":345,"language":346,"meta":106,"style":106},"language-json shiki shiki-themes github-light github-dark","{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What is FAQ schema?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"FAQ schema is structured data...\"\n    }\n  }]\n}\n","json",[163,348,349,354,369,382,391,404,417,426,439,450,456,462],{"__ignoreMap":106},[166,350,351],{"class":168,"line":169},[166,352,353],{"class":172},"{\n",[166,355,356,360,363,366],{"class":168,"line":107},[166,357,359],{"class":358},"sj4cs","  \"@context\"",[166,361,362],{"class":172},": ",[166,364,365],{"class":187},"\"https:\u002F\u002Fschema.org\"",[166,367,368],{"class":172},",\n",[166,370,372,375,377,380],{"class":168,"line":371},3,[166,373,374],{"class":358},"  \"@type\"",[166,376,362],{"class":172},[166,378,379],{"class":187},"\"FAQPage\"",[166,381,368],{"class":172},[166,383,385,388],{"class":168,"line":384},4,[166,386,387],{"class":358},"  \"mainEntity\"",[166,389,390],{"class":172},": [{\n",[166,392,394,397,399,402],{"class":168,"line":393},5,[166,395,396],{"class":358},"    \"@type\"",[166,398,362],{"class":172},[166,400,401],{"class":187},"\"Question\"",[166,403,368],{"class":172},[166,405,407,410,412,415],{"class":168,"line":406},6,[166,408,409],{"class":358},"    \"name\"",[166,411,362],{"class":172},[166,413,414],{"class":187},"\"What is FAQ schema?\"",[166,416,368],{"class":172},[166,418,420,423],{"class":168,"line":419},7,[166,421,422],{"class":358},"    \"acceptedAnswer\"",[166,424,425],{"class":172},": {\n",[166,427,429,432,434,437],{"class":168,"line":428},8,[166,430,431],{"class":358},"      \"@type\"",[166,433,362],{"class":172},[166,435,436],{"class":187},"\"Answer\"",[166,438,368],{"class":172},[166,440,442,445,447],{"class":168,"line":441},9,[166,443,444],{"class":358},"      \"text\"",[166,446,362],{"class":172},[166,448,449],{"class":187},"\"FAQ schema is structured data...\"\n",[166,451,453],{"class":168,"line":452},10,[166,454,455],{"class":172},"    }\n",[166,457,459],{"class":168,"line":458},11,[166,460,461],{"class":172},"  }]\n",[166,463,465],{"class":168,"line":464},12,[166,466,467],{"class":172},"}\n",[25,469,471],{"id":470},"googles-requirements","Google's Requirements",[15,473,474],{},"The FAQ content must be visible on the page. You cannot hide answers behind accordions and only expose them in schema. The questions and answers must come from the page itself, not from user-submitted content. Medical, legal, and financial advice may have additional scrutiny.",[25,476,250],{"id":249},[15,478,479,482],{},[254,480,481],{},"Hiding answers on the page",": If answers are not visible to users, Google will not show the rich result.",[15,484,485,488],{},[254,486,487],{},"Using for advertising",": Do not stuff promotional content into FAQ answers. Google may penalize this.",[15,490,491,362,494,497,498,497,501,504,505,508],{},[254,492,493],{},"Missing required fields",[163,495,496],{},"@type",", ",[163,499,500],{},"name",[163,502,503],{},"acceptedAnswer",", and ",[163,506,507],{},"text"," are all required.",[15,510,511,514],{},[254,512,513],{},"Duplicate questions",": Each question should appear on only one page of your site.",[25,516,518],{"id":517},"testing","Testing",[15,520,521],{},"After adding FAQ schema, test with Google Rich Results Test and check Search Console Enhancements report. It may take days or weeks for rich results to appear.",[25,523,84],{"id":83},[15,525,526,527,529],{},"FAQ schema can produce valuable SERP real estate. Keep answers on-page, avoid promotional content, and use our ",[19,528,329],{"href":328}," for error-free JSON-LD.",[93,531],{},[15,533,534],{},[98,535,536,537,104],{},"Generate FAQ schema with our ",[19,538,539],{"href":328},"free JSON-LD Generator",[289,541,542],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":107,"depth":107,"links":544},[545,546,547,548,549,550],{"id":333,"depth":107,"text":334},{"id":340,"depth":107,"text":341},{"id":470,"depth":107,"text":471},{"id":249,"depth":107,"text":250},{"id":517,"depth":107,"text":518},{"id":83,"depth":107,"text":84},"Learn how to implement FAQPage schema to get accordion-style rich results. Covers JSON-LD format, required fields, and common mistakes.",{"date":553,"category":554,"tags":555,"relatedTools":560,"image":127},"2026-04-02","structured-data",[556,557,558,559],"faq schema","rich results","json-ld","structured data",[561],"json-ld-generator","\u002Fblog\u002Fen\u002Ffaq-schema-rich-results",{"title":317,"description":551},"blog\u002Fen\u002Ffaq-schema-rich-results","o_7z-u-O2arwKoqJ4G5R7JOK6BaNZCnZRvb_fv9s6-U",{"id":567,"title":568,"body":569,"description":905,"extension":116,"meta":906,"navigation":128,"path":912,"seo":913,"stem":914,"__hash__":915},"blog\u002Fblog\u002Fen\u002Fhow-to-add-json-ld-structured-data.md","How to Add JSON-LD Structured Data to Your Website in 2026",{"type":8,"value":570,"toc":885},[571,574,584,588,591,594,659,662,666,669,672,678,682,687,690,694,700,704,707,711,714,718,721,725,729,740,744,750,754,761,765,776,780,783,813,817,868,870,873,875,883],[11,572,568],{"id":573},"how-to-add-json-ld-structured-data-to-your-website-in-2026",[15,575,576,577,583],{},"Structured data is one of the most underused SEO tactics. A ",[19,578,582],{"href":579,"rel":580},"https:\u002F\u002Fwww.schemaapp.com\u002Fschema-markup\u002Fschema-markup-statistics\u002F",[581],"nofollow","study by Schema App"," found that fewer than 30% of websites use any form of structured data, yet pages with valid markup consistently earn higher click-through rates in search results. If your pages are not using JSON-LD, you are leaving traffic on the table.",[25,585,587],{"id":586},"what-is-json-ld","What Is JSON-LD?",[15,589,590],{},"JSON-LD stands for JavaScript Object Notation for Linked Data. It is a way to describe the content of a web page in a format that search engines like Google, Bing, and Yandex can read with confidence. Instead of guessing whether a string of text is a title, an author name, or a price, the search engine gets a clear, structured object that answers those questions explicitly.",[15,592,593],{},"A JSON-LD block lives inside a simple HTML script tag:",[157,595,597],{"className":159,"code":596,"language":161,"meta":106,"style":106},"\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"How to Add JSON-LD Structured Data\",\n  \"author\": { \"@type\": \"Person\", \"name\": \"Your Name\" },\n  \"datePublished\": \"2026-01-15\"\n}\n\u003C\u002Fscript>\n",[163,598,599,617,621,626,631,636,641,646,650],{"__ignoreMap":106},[166,600,601,603,606,609,611,614],{"class":168,"line":169},[166,602,173],{"class":172},[166,604,605],{"class":176},"script",[166,607,608],{"class":180}," type",[166,610,184],{"class":172},[166,612,613],{"class":187},"\"application\u002Fld+json\"",[166,615,616],{"class":172},">\n",[166,618,619],{"class":168,"line":107},[166,620,353],{"class":172},[166,622,623],{"class":168,"line":371},[166,624,625],{"class":172},"  \"@context\": \"https:\u002F\u002Fschema.org\",\n",[166,627,628],{"class":168,"line":384},[166,629,630],{"class":172},"  \"@type\": \"Article\",\n",[166,632,633],{"class":168,"line":393},[166,634,635],{"class":172},"  \"headline\": \"How to Add JSON-LD Structured Data\",\n",[166,637,638],{"class":168,"line":406},[166,639,640],{"class":172},"  \"author\": { \"@type\": \"Person\", \"name\": \"Your Name\" },\n",[166,642,643],{"class":168,"line":419},[166,644,645],{"class":172},"  \"datePublished\": \"2026-01-15\"\n",[166,647,648],{"class":168,"line":428},[166,649,467],{"class":172},[166,651,652,655,657],{"class":168,"line":441},[166,653,654],{"class":172},"\u003C\u002F",[166,656,605],{"class":176},[166,658,616],{"class":172},[15,660,661],{},"This block does not affect how your page looks. It only helps machines understand it.",[25,663,665],{"id":664},"why-json-ld-matters-for-seo","Why JSON-LD Matters for SEO",[15,667,668],{},"Google uses structured data to power rich results: star ratings, recipe cards, FAQ accordions, product carousels, event listings, and more. These enhanced results take up more visual space in the SERP and typically get higher CTR than plain blue links.",[15,670,671],{},"Beyond rich results, structured data helps Google build its Knowledge Graph. When your entity is well-described, it is more likely to appear in knowledge panels, featured snippets, and other prominent placements.",[15,673,674,675,677],{},"Our ",[19,676,329],{"href":328}," can create complete markup for any schema type in seconds.",[25,679,681],{"id":680},"the-main-schema-types-you-should-know","The Main Schema Types You Should Know",[683,684,686],"h3",{"id":685},"article-and-blogposting","Article and BlogPosting",[15,688,689],{},"For blogs and news sites. Include headline, author, datePublished, dateModified, publisher, and image.",[683,691,693],{"id":692},"product-and-offer","Product and Offer",[15,695,696,697,699],{},"For ecommerce product pages. Include name, description, price, priceCurrency, availability, and brand. Use our ",[19,698,329],{"href":328}," to create valid product markup.",[683,701,703],{"id":702},"faqpage","FAQPage",[15,705,706],{},"For pages with question-and-answer content. FAQ schema can produce an accordion-style rich result that takes up significant SERP real estate. Generate it with the JSON-LD Generator(\u002Ftools\u002Fjson-ld-generator).",[683,708,710],{"id":709},"breadcrumblist","BreadcrumbList",[15,712,713],{},"For navigation breadcrumbs. Helps Google understand your site hierarchy and can produce breadcrumb-style URLs in search results.",[683,715,717],{"id":716},"localbusiness","LocalBusiness",[15,719,720],{},"For local service businesses. Include name, address, telephone, opening hours, and geo coordinates.",[25,722,724],{"id":723},"how-to-add-json-ld-to-your-site","How to Add JSON-LD to Your Site",[683,726,728],{"id":727},"method-1-direct-html","Method 1: Direct HTML",[15,730,731,732,735,736,739],{},"Paste the JSON-LD script tag into the ",[163,733,734],{},"\u003Chead>"," or ",[163,737,738],{},"\u003Cbody>"," of your page. Works on any static HTML site.",[683,741,743],{"id":742},"method-2-wordpress","Method 2: WordPress",[15,745,746,747,104],{},"Use a plugin like Yoast SEO, Rank Math, or SEOPress. These plugins generate basic Article and WebSite schema automatically. For custom schema types, you can use a dedicated JSON-LD plugin or add the script directly to your theme's ",[163,748,749],{},"header.php",[683,751,753],{"id":752},"method-3-shopify","Method 3: Shopify",[15,755,756,757,760],{},"Shopify themes can output JSON-LD in Liquid templates. Many premium themes include basic Product schema. For custom or enhanced product schema, modify your ",[163,758,759],{},"product-template.liquid"," file in the theme editor.",[683,762,764],{"id":763},"method-4-javascript-frameworks","Method 4: JavaScript Frameworks",[15,766,767,768,771,772,775],{},"In Nuxt, Next.js, or other frameworks, use the framework's head management API to inject JSON-LD. In Nuxt, for example, you can use ",[163,769,770],{},"useHead"," or render ",[163,773,774],{},"\u003Cscript type=\"application\u002Fld+json\">"," inside your component template.",[25,777,779],{"id":778},"testing-your-structured-data","Testing Your Structured Data",[15,781,782],{},"Always test your JSON-LD before deploying:",[44,784,785,796,807],{},[47,786,787,790,791],{},[254,788,789],{},"Google Rich Results Test",": Paste your URL or code snippet at ",[19,792,795],{"href":793,"rel":794},"https:\u002F\u002Fsearch.google.com\u002Ftest\u002Frich-results",[581],"search.google.com\u002Ftest\u002Frich-results",[47,797,798,801,802],{},[254,799,800],{},"Schema.org Validator",": Check for structural validity at ",[19,803,806],{"href":804,"rel":805},"https:\u002F\u002Fvalidator.schema.org",[581],"validator.schema.org",[47,808,809,812],{},[254,810,811],{},"Google Search Console",": After deployment, check the \"Enhancements\" section to see which rich result types Google has detected",[25,814,816],{"id":815},"common-json-ld-mistakes-to-avoid","Common JSON-LD Mistakes to Avoid",[208,818,819,825,835,849],{},[47,820,821,824],{},[254,822,823],{},"Making up data that does not exist on the page",": If your page does not show star ratings, do not add AggregateRating schema. This violates Google's guidelines and can result in a manual action.",[47,826,827,830,831,834],{},[254,828,829],{},"Forgetting to update dates",": If an article is updated, the ",[163,832,833],{},"dateModified"," field should reflect that.",[47,836,837,840,841,844,845,848],{},[254,838,839],{},"Using the wrong schema type",": A blog post is a ",[163,842,843],{},"BlogPosting",", not a ",[163,846,847],{},"NewsArticle",". Pick the most specific type available.",[47,850,851,853,854,856,857,860,861,864,865,867],{},[254,852,493],{},": Every schema type has required properties. For Product, ",[163,855,500],{}," is required. For Article, ",[163,858,859],{},"headline"," and ",[163,862,863],{},"datePublished"," are required. Our ",[19,866,329],{"href":328}," highlights required fields to help you avoid these mistakes.",[25,869,84],{"id":83},[15,871,872],{},"JSON-LD is not optional for competitive SERPs. It takes minutes to add, costs nothing, and can meaningfully impact your organic traffic. Start with your highest-traffic pages, test thoroughly, and expand from there.",[93,874],{},[15,876,877],{},[98,878,879,880,882],{},"Need to generate JSON-LD without writing code? Try our ",[19,881,539],{"href":328}," - it supports Article, Product, FAQ, Breadcrumb, Event, Organization, and LocalBusiness schema types.",[289,884,291],{},{"title":106,"searchDepth":107,"depth":107,"links":886},[887,888,889,896,902,903,904],{"id":586,"depth":107,"text":587},{"id":664,"depth":107,"text":665},{"id":680,"depth":107,"text":681,"children":890},[891,892,893,894,895],{"id":685,"depth":371,"text":686},{"id":692,"depth":371,"text":693},{"id":702,"depth":371,"text":703},{"id":709,"depth":371,"text":710},{"id":716,"depth":371,"text":717},{"id":723,"depth":107,"text":724,"children":897},[898,899,900,901],{"id":727,"depth":371,"text":728},{"id":742,"depth":371,"text":743},{"id":752,"depth":371,"text":753},{"id":763,"depth":371,"text":764},{"id":778,"depth":107,"text":779},{"id":815,"depth":107,"text":816},{"id":83,"depth":107,"text":84},"A step-by-step guide for website owners, developers, and SEOs on adding JSON-LD structured data. Covers Article, Product, FAQ, Breadcrumb, and how to test with Google Rich Results.",{"date":907,"category":554,"tags":908,"relatedTools":911,"image":127},"2026-01-15",[558,559,909,557,910],"schema.org","seo",[561],"\u002Fblog\u002Fen\u002Fhow-to-add-json-ld-structured-data",{"title":568,"description":905},"blog\u002Fen\u002Fhow-to-add-json-ld-structured-data","PVjAecBMHdqvvASo6gQsOMSgU8dw6q1FUBJzQA-O1Yk",{"id":917,"title":918,"body":919,"description":1183,"extension":116,"meta":1184,"navigation":128,"path":1195,"seo":1196,"stem":1197,"__hash__":1198},"blog\u002Fblog\u002Fen\u002Fhreflang-tags-complete-guide.md","Hreflang Tags Complete Guide for Multilingual SEO",{"type":8,"value":920,"toc":1169},[921,924,927,935,939,942,946,952,956,960,1050,1055,1059,1066,1070,1073,1077,1096,1100,1103,1105,1115,1132,1138,1147,1149,1152,1154,1157,1159,1167],[11,922,918],{"id":923},"hreflang-tags-complete-guide-for-multilingual-seo",[15,925,926],{},"If your website serves users in more than one language or country, hreflang tags are not optional. They tell search engines which version of a page to show users in a specific language or region. Without them, Google may serve the wrong language to the wrong audience.",[15,928,929,930,934],{},"Use our ",[19,931,933],{"href":932},"\u002Ftools\u002Fhreflang-generator","Hreflang Tag Generator"," to create correct tags in seconds.",[25,936,938],{"id":937},"what-is-hreflang","What Is Hreflang?",[15,940,941],{},"Hreflang is an HTML attribute that says: \"This page has alternate versions in these languages.\" It prevents duplicate content issues across language variants.",[25,943,945],{"id":944},"hreflang-vs-canonical","Hreflang vs Canonical",[15,947,948,949,951],{},"Canonical says \"this is the primary version\" and consolidates signals. Hreflang says \"these are alternate language versions\" and routes users. These signals can conflict. Our ",[19,950,245],{"href":244}," detects such issues.",[25,953,955],{"id":954},"three-implementation-methods","Three Implementation Methods",[683,957,959],{"id":958},"html-link-tags","HTML Link Tags",[157,961,963],{"className":159,"code":962,"language":161,"meta":106,"style":106},"\u003Clink rel=\"alternate\" hreflang=\"en\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"zh-CN\" href=\"https:\u002F\u002Fexample.com\u002Fzh\u002Fpage\" \u002F>\n\u003Clink rel=\"alternate\" hreflang=\"x-default\" href=\"https:\u002F\u002Fexample.com\u002Fpage\" \u002F>\n",[163,964,965,995,1023],{"__ignoreMap":106},[166,966,967,969,971,973,975,978,981,983,986,988,990,993],{"class":168,"line":169},[166,968,173],{"class":172},[166,970,177],{"class":176},[166,972,181],{"class":180},[166,974,184],{"class":172},[166,976,977],{"class":187},"\"alternate\"",[166,979,980],{"class":180}," hreflang",[166,982,184],{"class":172},[166,984,985],{"class":187},"\"en\"",[166,987,191],{"class":180},[166,989,184],{"class":172},[166,991,992],{"class":187},"\"https:\u002F\u002Fexample.com\u002Fpage\"",[166,994,199],{"class":172},[166,996,997,999,1001,1003,1005,1007,1009,1011,1014,1016,1018,1021],{"class":168,"line":107},[166,998,173],{"class":172},[166,1000,177],{"class":176},[166,1002,181],{"class":180},[166,1004,184],{"class":172},[166,1006,977],{"class":187},[166,1008,980],{"class":180},[166,1010,184],{"class":172},[166,1012,1013],{"class":187},"\"zh-CN\"",[166,1015,191],{"class":180},[166,1017,184],{"class":172},[166,1019,1020],{"class":187},"\"https:\u002F\u002Fexample.com\u002Fzh\u002Fpage\"",[166,1022,199],{"class":172},[166,1024,1025,1027,1029,1031,1033,1035,1037,1039,1042,1044,1046,1048],{"class":168,"line":371},[166,1026,173],{"class":172},[166,1028,177],{"class":176},[166,1030,181],{"class":180},[166,1032,184],{"class":172},[166,1034,977],{"class":187},[166,1036,980],{"class":180},[166,1038,184],{"class":172},[166,1040,1041],{"class":187},"\"x-default\"",[166,1043,191],{"class":180},[166,1045,184],{"class":172},[166,1047,992],{"class":187},[166,1049,199],{"class":172},[15,1051,1052,1053,104],{},"Generate with our ",[19,1054,933],{"href":932},[683,1056,1058],{"id":1057},"xml-sitemap","XML Sitemap",[15,1060,1061,1062,104],{},"Better for large sites. Use our ",[19,1063,1065],{"href":1064},"\u002Ftools\u002Fhreflang-sitemap-generator","Hreflang Sitemap Generator",[683,1067,1069],{"id":1068},"http-headers","HTTP Headers",[15,1071,1072],{},"For non-HTML files like PDFs.",[25,1074,1076],{"id":1075},"language-codes","Language Codes",[15,1078,1079,1080,735,1083,362,1086,497,1089,497,1092,1095],{},"Use ",[163,1081,1082],{},"language",[163,1084,1085],{},"language-region",[163,1087,1088],{},"en",[163,1090,1091],{},"en-US",[163,1093,1094],{},"zh-CN",". ISO 639-1 for language, ISO 3166-1 Alpha 2 for region.",[25,1097,1099],{"id":1098},"the-x-default-value","The x-default Value",[15,1101,1102],{},"For users whose language does not match any specific hreflang. Point it to a language selector or default homepage.",[25,1104,250],{"id":249},[15,1106,1107,1110,1111,104],{},[254,1108,1109],{},"Missing return links",": Every annotation must be reciprocated. Use our ",[19,1112,1114],{"href":1113},"\u002Ftools\u002Fmultilingual-url-mapping-checker","URL Mapping Checker",[15,1116,1117,362,1120,1123,1124,497,1126,1123,1129,104],{},[254,1118,1119],{},"Wrong language codes",[163,1121,1122],{},"zh"," instead of ",[163,1125,1094],{},[163,1127,1128],{},"en-UK",[163,1130,1131],{},"en-GB",[15,1133,1134,1137],{},[254,1135,1136],{},"Missing self-reference",": Every page must include hreflang for itself.",[15,1139,1140,1143,1144,104],{},[254,1141,1142],{},"Canonical conflicts",": Check with our ",[19,1145,1146],{"href":244},"Canonical Hreflang Conflict Checker",[25,1148,518],{"id":517},[15,1150,1151],{},"Check source code, use Google Search Console International Targeting, search in different Google country versions.",[25,1153,84],{"id":83},[15,1155,1156],{},"Get language codes right, always include x-default, ensure reciprocal links, test regularly. One broken hreflang can confuse search engines across your entire site.",[93,1158],{},[15,1160,1161],{},[98,1162,1163,1164,104],{},"Generate hreflang tags with our ",[19,1165,1166],{"href":932},"free Hreflang Tag Generator",[289,1168,291],{},{"title":106,"searchDepth":107,"depth":107,"links":1170},[1171,1172,1173,1178,1179,1180,1181,1182],{"id":937,"depth":107,"text":938},{"id":944,"depth":107,"text":945},{"id":954,"depth":107,"text":955,"children":1174},[1175,1176,1177],{"id":958,"depth":371,"text":959},{"id":1057,"depth":371,"text":1058},{"id":1068,"depth":371,"text":1069},{"id":1075,"depth":107,"text":1076},{"id":1098,"depth":107,"text":1099},{"id":249,"depth":107,"text":250},{"id":517,"depth":107,"text":518},{"id":83,"depth":107,"text":84},"Learn how to implement hreflang tags for multilingual websites. Covers HTML link tags, XML sitemaps, common mistakes, and testing.",{"date":1185,"category":1186,"tags":1187,"relatedTools":1191,"image":127},"2026-02-03","international-seo",[1188,1189,1190],"hreflang","multilingual seo","international seo",[1192,1193,1194,310],"hreflang-generator","hreflang-sitemap-generator","multilingual-url-mapping-checker","\u002Fblog\u002Fen\u002Fhreflang-tags-complete-guide",{"title":918,"description":1183},"blog\u002Fen\u002Fhreflang-tags-complete-guide","5THXSwelhpKzU3_hXOp8nXcqEWcUgeM-wIH7mcr2pCU",{"id":1200,"title":1201,"body":1202,"description":1286,"extension":116,"meta":1287,"navigation":128,"path":1294,"seo":1295,"stem":1296,"__hash__":1297},"blog\u002Fblog\u002Fen\u002Frobots-txt-guide.md","Robots.txt Guide for SEO",{"type":8,"value":1203,"toc":1279},[1204,1207,1215,1219,1241,1245,1248,1250,1256,1258,1261,1263,1266,1268,1276],[11,1205,1201],{"id":1206},"robotstxt-guide-for-seo",[15,1208,1209,1210,1214],{},"Robots.txt tells crawlers which pages to visit and which to skip. A good file protects crawl budget. Use our ",[19,1211,1213],{"href":1212},"\u002Ftools\u002Frobots-txt-generator","Robots.txt Generator"," to create one.",[25,1216,1218],{"id":1217},"basic-syntax","Basic Syntax",[157,1220,1224],{"className":1221,"code":1222,"language":1223,"meta":106,"style":106},"language-txt shiki shiki-themes github-light github-dark","User-agent: *\nDisallow: \u002Fadmin\u002F\nSitemap: https:\u002F\u002Fexample.com\u002Fsitemap.xml\n","txt",[163,1225,1226,1231,1236],{"__ignoreMap":106},[166,1227,1228],{"class":168,"line":169},[166,1229,1230],{},"User-agent: *\n",[166,1232,1233],{"class":168,"line":107},[166,1234,1235],{},"Disallow: \u002Fadmin\u002F\n",[166,1237,1238],{"class":168,"line":371},[166,1239,1240],{},"Sitemap: https:\u002F\u002Fexample.com\u002Fsitemap.xml\n",[25,1242,1244],{"id":1243},"what-to-block","What to Block",[15,1246,1247],{},"Admin panels, search results, staging sites. Never block CSS or JS files.",[25,1249,518],{"id":517},[15,1251,929,1252,1255],{},[19,1253,1254],{"href":1212},"Robots.txt Tester"," or Google Search Console.",[25,1257,250],{"id":249},[15,1259,1260],{},"Blocking CSS\u002FJS, using Disallow: \u002F for everything, forgetting sitemap location.",[25,1262,84],{"id":83},[15,1264,1265],{},"Block low-value paths, test rules, add sitemap. Robots.txt is not a security tool.",[93,1267],{},[15,1269,1270],{},[98,1271,1272,1273,104],{},"Generate your robots.txt with our ",[19,1274,1275],{"href":1212},"free tool",[289,1277,1278],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":107,"depth":107,"links":1280},[1281,1282,1283,1284,1285],{"id":1217,"depth":107,"text":1218},{"id":1243,"depth":107,"text":1244},{"id":517,"depth":107,"text":518},{"id":249,"depth":107,"text":250},{"id":83,"depth":107,"text":84},"Learn robots.txt syntax, best practices, and how to test URL blocking with our free generator.",{"date":1288,"category":303,"tags":1289,"relatedTools":1292,"image":127},"2026-03-20",[1290,1291],"robots.txt","technical seo",[1293],"robots-txt-generator","\u002Fblog\u002Fen\u002Frobots-txt-guide",{"title":1201,"description":1286},"blog\u002Fen\u002Frobots-txt-guide","NaY1geMdAHgW-FvqMGzr93ZiuA1LzYZMjJcrAdLan20",{"id":1299,"title":1300,"body":1301,"description":1399,"extension":116,"meta":1400,"navigation":128,"path":1409,"seo":1410,"stem":1411,"__hash__":1412},"blog\u002Fblog\u002Fen\u002Fsitemap-best-practices.md","SEO Sitemap Best Practices for Better Indexing",{"type":8,"value":1302,"toc":1391},[1303,1306,1314,1318,1321,1325,1351,1355,1358,1362,1368,1370,1373,1375,1381,1383],[11,1304,1300],{"id":1305},"seo-sitemap-best-practices-for-better-indexing",[15,1307,1308,1309,1313],{},"An XML sitemap is a roadmap for search engines. It lists all important URLs and provides metadata about each one. A well-maintained sitemap helps Google discover new content faster. Use our ",[19,1310,1312],{"href":1311},"\u002Ftools\u002Fsitemap-xml-generator","Sitemap Generator"," to create one from your URL list.",[25,1315,1317],{"id":1316},"what-goes-in-a-sitemap","What Goes in a Sitemap",[15,1319,1320],{},"Include canonical, indexable pages only. Exclude redirected URLs, duplicate pages, paginated archives, and pages blocked by robots.txt. Quality over quantity: a sitemap with 500 high-value pages is better than one with 50,000 thin pages.",[25,1322,1324],{"id":1323},"sitemap-fields","Sitemap Fields",[208,1326,1327,1333,1339,1345],{},[47,1328,1329,1332],{},[254,1330,1331],{},"loc",": The full, canonical URL (required)",[47,1334,1335,1338],{},[254,1336,1337],{},"lastmod",": Last modification date in YYYY-MM-DD format",[47,1340,1341,1344],{},[254,1342,1343],{},"changefreq",": How often the page changes (always, hourly, daily, weekly, monthly, yearly, never)",[47,1346,1347,1350],{},[254,1348,1349],{},"priority",": 0.0 to 1.0, relative to other pages on your site",[25,1352,1354],{"id":1353},"sitemap-size-limits","Sitemap Size Limits",[15,1356,1357],{},"Maximum 50,000 URLs or 50MB uncompressed per sitemap file. For larger sites, split into multiple sitemaps and use a sitemap index file.",[25,1359,1361],{"id":1360},"multilingual-sitemaps","Multilingual Sitemaps",[15,1363,1364,1365,1367],{},"For sites with multiple languages, include hreflang annotations in your sitemap. Use our ",[19,1366,1065],{"href":1064}," to create sitemap entries with xhtml:link elements.",[25,1369,250],{"id":249},[15,1371,1372],{},"Including redirected URLs, forgetting to update lastmod dates, listing noindex pages, using wrong priorities (every page priority 1.0), not compressing large sitemaps.",[25,1374,84],{"id":83},[15,1376,1377,1378,1380],{},"Include only canonical URLs, keep sitemaps under 50MB\u002F50K URLs, use lastmod accurately, and submit to Google Search Console. Use our ",[19,1379,1312],{"href":1311}," for error-free XML.",[93,1382],{},[15,1384,1385],{},[98,1386,1387,1388,104],{},"Generate sitemaps with our ",[19,1389,1390],{"href":1311},"free Sitemap Generator",{"title":106,"searchDepth":107,"depth":107,"links":1392},[1393,1394,1395,1396,1397,1398],{"id":1316,"depth":107,"text":1317},{"id":1323,"depth":107,"text":1324},{"id":1353,"depth":107,"text":1354},{"id":1360,"depth":107,"text":1361},{"id":249,"depth":107,"text":250},{"id":83,"depth":107,"text":84},"Learn how to create and maintain XML sitemaps that improve crawling and indexing. Covers sitemap structure, priority, lastmod, and multilingual sitemaps.",{"date":1401,"category":303,"tags":1402,"relatedTools":1407,"image":127},"2026-04-15",[1403,1404,1405,1406],"sitemap","xml sitemap","crawling","indexing",[1408,1193],"sitemap-xml-generator","\u002Fblog\u002Fen\u002Fsitemap-best-practices",{"title":1300,"description":1399},"blog\u002Fen\u002Fsitemap-best-practices","-YF73ukuSlxg2daiZ7EaaqDgQ4M5ed7IPBM0dY_y4M8",{"id":1414,"title":1415,"body":1416,"description":1588,"extension":116,"meta":1589,"navigation":128,"path":1600,"seo":1601,"stem":1602,"__hash__":1603},"blog\u002Fblog\u002Fen\u002Futm-parameters-best-practices.md","UTM Parameters Best Practices for Campaign Tracking",{"type":8,"value":1417,"toc":1581},[1418,1421,1429,1433,1465,1469,1472,1502,1509,1513,1526,1532,1541,1552,1556,1566,1568,1571,1573],[11,1419,1415],{"id":1420},"utm-parameters-best-practices-for-campaign-tracking",[15,1422,1423,1424,1428],{},"UTM parameters are essential for campaign attribution. Without them, traffic from email, social, and paid ads shows up as \"direct\" in Google Analytics. Use our ",[19,1425,1427],{"href":1426},"\u002Ftools\u002Futm-builder","UTM Batch Builder"," to create UTM-tagged URLs in bulk.",[25,1430,1432],{"id":1431},"the-five-utm-parameters","The Five UTM Parameters",[208,1434,1435,1441,1447,1453,1459],{},[47,1436,1437,1440],{},[254,1438,1439],{},"utm_source",": Platform sending traffic (facebook, newsletter, google)",[47,1442,1443,1446],{},[254,1444,1445],{},"utm_medium",": Marketing channel (cpc, email, social)",[47,1448,1449,1452],{},[254,1450,1451],{},"utm_campaign",": Specific campaign name (spring-sale-2026)",[47,1454,1455,1458],{},[254,1456,1457],{},"utm_term",": Paid search keywords (optional)",[47,1460,1461,1464],{},[254,1462,1463],{},"utm_content",": A\u002FB test variants (optional)",[25,1466,1468],{"id":1467},"naming-conventions","Naming Conventions",[15,1470,1471],{},"Consistency is critical. Pick one convention and enforce it:",[208,1473,1474,1486,1492],{},[47,1475,1476,362,1479,1482,1483],{},[254,1477,1478],{},"Lowercase only",[163,1480,1481],{},"spring-sale"," not ",[163,1484,1485],{},"Spring_Sale",[47,1487,1488,1491],{},[254,1489,1490],{},"Hyphens as separators",": Not underscores or spaces",[47,1493,1494,362,1497,1482,1499],{},[254,1495,1496],{},"Descriptive but short",[163,1498,1481],{},[163,1500,1501],{},"campaign-2026-03-email-spring",[15,1503,929,1504,1508],{},[19,1505,1507],{"href":1506},"\u002Ftools\u002Fcampaign-naming-checker","Campaign Naming Checker"," to enforce these rules automatically.",[25,1510,1512],{"id":1511},"common-utm-mistakes","Common UTM Mistakes",[15,1514,1515,362,1518,1521,1522,1525],{},[254,1516,1517],{},"Inconsistent casing",[163,1519,1520],{},"utm_source=Facebook"," vs ",[163,1523,1524],{},"facebook"," creates two separate GA entries.",[15,1527,1528,1531],{},[254,1529,1530],{},"UTM on internal links",": Never add UTM to links within your own site. They overwrite session source.",[15,1533,1534,1537,1538,1540],{},[254,1535,1536],{},"Missing campaign name",": Without ",[163,1539,1451],{},", you cannot distinguish between promotions.",[15,1542,1543,1546,1547,1551],{},[254,1544,1545],{},"Dirty reporting URLs",": Use our ",[19,1548,1550],{"href":1549},"\u002Ftools\u002Furl-parameter-cleaner","URL Parameter Cleaner"," to normalize.",[25,1553,1555],{"id":1554},"building-at-scale","Building at Scale",[15,1557,1558,1559,1561,1562,104],{},"For single links, manual parameters work. For campaigns with dozens of URLs, use our ",[19,1560,1427],{"href":1426},": paste base URLs, set parameters, get all tracking URLs at once. Before adding UTM, check landing pages with our ",[19,1563,1565],{"href":1564},"\u002Ftools\u002Flanding-page-url-checker","Landing Page URL Checker",[25,1567,84],{"id":83},[15,1569,1570],{},"Always include source, medium, and campaign. Never UTM internal links. Use lowercase and hyphens. Test in GA before launching.",[93,1572],{},[15,1574,1575],{},[98,1576,1577,1578,104],{},"Build UTM links with our ",[19,1579,1580],{"href":1426},"free UTM Batch Builder",{"title":106,"searchDepth":107,"depth":107,"links":1582},[1583,1584,1585,1586,1587],{"id":1431,"depth":107,"text":1432},{"id":1467,"depth":107,"text":1468},{"id":1511,"depth":107,"text":1512},{"id":1554,"depth":107,"text":1555},{"id":83,"depth":107,"text":84},"Learn UTM naming conventions, common mistakes, and batch URL building for accurate Google Analytics attribution.",{"date":1590,"category":1591,"tags":1592,"relatedTools":1596,"image":127},"2026-02-18","marketing",[1593,1594,1595],"utm","google analytics","campaign tracking",[1597,1598,1599],"utm-builder","url-parameter-cleaner","campaign-naming-checker","\u002Fblog\u002Fen\u002Futm-parameters-best-practices",{"title":1415,"description":1588},"blog\u002Fen\u002Futm-parameters-best-practices","cqpDlmX4VBQZztxdQh9uCDCe6L8v_caQqUINQY1woq0",{"id":1605,"title":1606,"body":1607,"description":1728,"extension":116,"meta":1729,"navigation":128,"path":1739,"seo":1740,"stem":1741,"__hash__":1742},"blog\u002Fblog\u002Fen\u002Fwrite-seo-title-meta-description.md","How to Write SEO Titles and Meta Descriptions That Get Clicks",{"type":8,"value":1608,"toc":1721},[1609,1612,1615,1619,1629,1635,1643,1649,1655,1659,1666,1672,1678,1684,1689,1693,1699,1701,1704,1706,1711,1713],[11,1610,1606],{"id":1611},"how-to-write-seo-titles-and-meta-descriptions-that-get-clicks",[15,1613,1614],{},"Your title tag and meta description are the first things searchers see. A well-crafted pair can lift CTR by 20% or more without changing your ranking.",[25,1616,1618],{"id":1617},"title-best-practices","Title Best Practices",[15,1620,1621,1624,1625,104],{},[254,1622,1623],{},"Length",": 50-60 characters. Google truncates longer titles. Use our ",[19,1626,1628],{"href":1627},"\u002Ftools\u002Fmeta-title-description-preview","Meta Previewer",[15,1630,1631,1634],{},[254,1632,1633],{},"Primary keyword near front",": Within first 30 characters.",[15,1636,1637,362,1640],{},[254,1638,1639],{},"Brand at end",[163,1641,1642],{},"Primary Keyword | Brand Name",[15,1644,1645,1648],{},[254,1646,1647],{},"Unique per page",": Duplicate titles confuse search engines.",[15,1650,1651,1654],{},[254,1652,1653],{},"Actionable language",": \"How to,\" \"Best,\" numbers, and current year improve CTR.",[25,1656,1658],{"id":1657},"meta-description-best-practices","Meta Description Best Practices",[15,1660,1661,1663,1664,104],{},[254,1662,1623],{},": 120-155 characters. Check with our ",[19,1665,1628],{"href":1627},[15,1667,1668,1671],{},[254,1669,1670],{},"Include primary keyword",": Gets bolded in SERPs when it matches the query.",[15,1673,1674,1677],{},[254,1675,1676],{},"Call to action",": \"Learn how,\" \"Discover,\" \"Find out\" -- give users a reason to click.",[15,1679,1680,1683],{},[254,1681,1682],{},"Match search intent",": Informational vs commercial.",[15,1685,1686,1688],{},[254,1687,1647],{},": Never duplicate descriptions.",[25,1690,1692],{"id":1691},"preview-before-publishing","Preview Before Publishing",[15,1694,929,1695,1698],{},[19,1696,1697],{"href":1627},"Meta Title and Description Previewer"," to see exactly how your snippet looks in desktop and mobile results. Catch truncation and placement issues before they go live.",[25,1700,250],{"id":249},[15,1702,1703],{},"Keyword stuffing, writing for bots not humans, default descriptions, missing descriptions entirely, same title on every page.",[25,1705,84],{"id":83},[15,1707,1708,1709,104],{},"Titles 50-60 chars, keyword near front, brand at end. Descriptions 120-155 chars, keyword included, call to action. Always preview with our ",[19,1710,1628],{"href":1627},[93,1712],{},[15,1714,1715],{},[98,1716,1717,1718,104],{},"Check your titles with our ",[19,1719,1720],{"href":1627},"free Meta Previewer",{"title":106,"searchDepth":107,"depth":107,"links":1722},[1723,1724,1725,1726,1727],{"id":1617,"depth":107,"text":1618},{"id":1657,"depth":107,"text":1658},{"id":1691,"depth":107,"text":1692},{"id":249,"depth":107,"text":250},{"id":83,"depth":107,"text":84},"Learn to craft SEO titles and meta descriptions that drive clicks. Covers character limits, keyword placement, and SERP preview tools.",{"date":1730,"category":1731,"tags":1732,"relatedTools":1737,"image":127},"2026-03-05","content-seo",[1733,1734,1735,1736],"meta title","meta description","serp","ctr",[1738],"meta-title-description-preview","\u002Fblog\u002Fen\u002Fwrite-seo-title-meta-description",{"title":1606,"description":1728},"blog\u002Fen\u002Fwrite-seo-title-meta-description","QjWjaAG2aeXrnX9Yl9IsuaAltmMkI6wS4hoEZosh62M",1780480146069]