1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1950],{31222:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]])},8971:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},85594:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},61108:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},76915:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},4844:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},79503:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},57235:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]])},52981:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]])},87764:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},39455:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]])},40116:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},49525:function(e,t,a){"use strict";a.d(t,{Z:function(){return n}});var s=a(15109);let n=(0,s.Z)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},38661:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/tools/canonical-checker",function(){return a(8898)}])},8898:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return H}});var s=a(11010),n=a(91309),i=a(10092),r=a(85893),o=a(9008),l=a.n(o),c=a(41664),d=a.n(c),h=a(67294),m=a(86501),x=a(36316),g=a(57235),p=a(85594),u=a(40116),f=a(61108),y=a(76915),b=a(9560),w=a(31222),j=a(4844),v=a(49525),N=a(87764),k=a(52981),C=a(82701),R=a(79503),L=a(8971),S=a(39455),U=a(88501),T=[{title:"Add your input",body:"Paste or type into the field Canonical Checker works from.",alt:"Empty Canonical Checker before any input"},{title:"A page URL in place",body:"With a page URL entered, Canonical Checker is ready to run.",alt:"Canonical Checker with input filled
1in"},{title:"See what Check Canonical produces",body:"Clicking Check Canonical runs the check and shows the result right below.",alt:"Canonical Checker showing its result"}],F="https://www.grigora.co/tools/".concat("canonical-checker","/"),M="Free Canonical Tag Checker (Duplicate Content Scan) | Grigora",q="Check the canonical tag on any URL in seconds. Detect missing tags, cross-domain pointing, and duplicate content risks. Free, no signup needed.",I=[{q:"What is a canonical tag and why does it matter?",a:'A canonical tag is an HTML element (rel="canonical") that tells search engines which version of a page is the "master" version. It resolves duplicate content by consolidating ranking signals onto one URL. Without it, Google may pick the wrong page to index, split link equity, or flag the site for low-quality duplicate content.'},{q:'What does "self-referencing canonical" mean?',a:"The canonical URL equals the page URL it is on. This is the safe default - every indexable page should self-canonicalize. It tells Google "this is the canonical version" unambiguously and protects against scraper sites or URL parameter variants outranking the original."},{q:"What if the canonical points to a different URL?",a:"That is intentional only for: (1) pagination consolidation, (2) parameter variants pointing to clean URLs, (3) syndication where another domain owns the original. If unintentional, it means the current page will not be indexed - a ranking disaster if you want traffic to this URL. Always verify."},{q:"Can a canonical tag point to a different domain?",a:"Yes - this is called cross-domain canonicalization and is used for syndication. For example, Medium posts often canonicalize to the original author's blog. It passes ranking signals across domains. Use with caution: if set by mistake, it hands your SEO equity to another site."},{q:"Does Google always respect canonical tags?",a:"No. Canonical tags are hints, not directives. Google evaluates them alongside internal link signals, sitemap entries, and HTTP redirects. If those conflict with your canonical, Google may choose its own winner. Use Search Console's URL Inspection to see what Google actually picked."},{q:"How do I find the canonical tag on a page?",a:"View page source (Ctrl+U on most browsers) and search for "rel=canonical". This tool does it automatically - paste any URL and it fetches the head and reports the tag. Checking 50 pages manually takes an hour; this tool does them in 2 minutes."},{q:"What are the most common canonical mistakes?",a:"Missing tags on thin variant pages (parameter URLs, sort orders), canonicals pointing to 404 or redirected URLs, absolute-vs-relative URL mismatches (http vs https, www vs non-www), and canonicals on paginated sequences pointing to page 1 (now deprecated by Google)."},{q:"Should paginated pages canonicalize to page 1?",a:"No - that used to be a common pattern, but Google deprecated rel=prev/next and now prefers pagination to be self-canonical if each page has unique content. Canonicalizing page 2+ to page 1 removes those pages from the index entirely and loses long-tail rankings."},{q:"Is canonical or 301 redirect better for duplicate URLs?",a:"If only one URL should exist, use a 301 redirect - it is a stronger signal. Canonical is for when both URLs must remain accessible (tracked parameters, print versions, AMP) but should not compete. Rule of thumb: duplicates users can reach = canonical. Obsolete URLs = 301."},{q:"Can the tool check JavaScript-rendered canonicals?",a:"The free tool reads the server-rendered HTML. If your canonical is injected by JavaScript (React hydration without SSR), it will not be visible. Use the Grigora paid crawler with JS rendering for these cases. Best practice: render canonical server-side in every CMS."},{q:"What is the canonical equivalent for hreflang sites?",a:"Each language version should self-canonicalize AND include hreflang annotations listing siblings. Canonical points to itself; hreflang tells Google about alternates. Cross-canonicalizing between languages is a classic mistake that makes only one language rank globally."},{q:"Is my data stored after checking?",a:"No. The URL you paste is fetched, parsed, and the result returned - nothing is written to a database. The paid Grigora suite offers historical canonical tracking for sites that want change alerts, but the free tool is stateless."}],A=[{title:"Canonical reported as "missing" but source shows one",cause:"The canonical is injected by JavaScript after page load, or placed outside the <head> tag (which makes it invalid).",fix:"Check server-rendered HTML (view-source:, not DevTools). Move canonical to inside <head> and render server-side. Google only reads canonicals in the raw head of the initial response."},{title:"Canonical points to a 404 page",cause:"The target URL was deleted or the slug changed after the canonical was set.",fix:"Update the canonical to the current live URL or remove entirely and let the page self-canonicalize. A broken canonical tells Google to not index this page at all."},{title:"Mixed http/https or www/non-www canonical",cause:"Hardcoded canonical uses old URL format that does not match current site config.",fix:"Always generate canonicals with the same URL format that resolves in the browser. Use absolute URLs with the exact protocol and subdomain. Inconsistency splits ranking signals."},{title:"Different canonical on identical product variants",cause:"Color/size variants each self-canonicalize, creating duplicate-content competition.",fix:"If variants have the same copy, canonical all variants to the base product URL. If variants have unique content (reviews, prices), let them self-canonicalize. Half-measures hurt both ways."},{title:"Canonical tag on a noindex page",cause:"Redundant markup - noindex already blocks indexation, so canonical is ignored.",fix:"Decide: either let Google index this page (remove noindex, keep canonical) or do not (keep noindex, remove canonical). Conflicting signals waste crawl budget."},{title:"Paginated series all canonical to page 1",cause:"Legacy rel=prev/next consolidation strategy that Google deprecated.",fix:"Remove canonical-to-page-1 patterns. Let each paginated page self-canonicalize so long-tail rankings on page 3, 4, 5 survive."},{title:"Canonical pointing cross-domain unintentionally",cause:"Content was syndicated from another site and the canonical was copied over.",fix:"Every syndicated piece should verify its canonical before publication. If you own the content, your canonical should point to your own URL, not the source."},{title:"Relative URL in canonical",cause:"Used "/page" instead of full "https://site.com/page".",fix:"Always use absolute URLs. Relative canonicals are valid per spec but cause issues with reverse proxies, CDN transforms, and cached variants."}],Z=[{role:"E-commerce SEOs",need:"Audit product variants for canonical leaks",how:"Scan top 100 PDP URLs, flag any where the canonical does not match the PDP URL. Highlights variant configuration errors that split ranking.",outcome:"Consolidated product rankings and fewer duplicate-content flags in Search Console."},{role:"Technical SEOs",need:"Post-migration canonical verification",how:"After a URL restructure, scan each old-to-new page pair. Verify new pages self-canonicalize and old pages 301 correctly.",outcome:"Zero canonical-driven ranking losses during migration."},{role:"Content managers",need:"Syndication compliance checks",how:"When republishing to Medium, LinkedIn, or partner sites, verify the syndicated version canonicalizes back to your original.",outcome:"Syndication reach without cannibalization; original URL keeps the ranking equity."},{role:"Agency auditors",need:"Client site health snapshots",how:"Part of standard quarterly audit. Scan the 50 most-trafficked URLs and report any canonical anomalies in the client deck.",outcome:"Tangible SEO deliverable with specific fix list instead of vague "we audited your tags" bullet."},{role:"Developers",need:"CI-level canonical regression test",how:"Wrap the API in a post-deploy smoke test. Verify key pages still have expected canonical tags.",outcome:"Canonical regressions caught at deploy, never in the wild."},{role:"Affiliate marketers",need:"Protect against duplicate content from aggregator scrapes",how:"Verify your originals self-canonicalize correctly. Ensures Google picks your version over scraper sites.",outcome:"Scrapers cannot outrank your originals via duplicate content."}],G=[{platform:"WordPress (Yoast/RankMath)",steps:["Navigate to the post or page editor.","Scroll to the SEO plugin section and locate "Advanced" or "Canonical URL".","Leave blank to self-canonicalize (recommended) or enter an explicit URL for duplicates.","Save the post and re-run this checker to verify the tag appears correctly.","For bulk edits, use the Yoast/RankMath CSV import feature."]},{platform:"Shopify",steps:["Shopify sets canonicals automatically on products, collections, and pages.","For parameter variants (sort, filter), Shopify canonicals to the clean URL - verify with this tool.","To customize, edit theme.liquid and the layout files. Add rel=canonical manually if needed.","Run this checker on 3-5 product URLs to confirm theme renders the tag correctly.","Alert: some third-party themes strip canonicals - always verify after install."]},{platform:"Webflow",steps:["Open the page settings for any CMS Collection item or static page.","N
1avigate to SEO settings and paste the canonical URL (leave blank to self-canonicalize).","Publish and run this tool on the live URL to verify the tag renders.","For dynamic Collection pages, use the Canonical URL field in the Collection settings.","Test both mobile and desktop versions - Webflow sometimes generates different markup."]},{platform:"Next.js",steps:["In pages/ router: use next-seo with the canonical prop on every page.","In app/ router: export a metadata object with alternates.canonical.","Canonicals must render server-side - verify by viewing the source of the production URL, not via React DevTools.","Run this checker on prod URLs after each deploy.","Add a CI step calling the Grigora canonical API to catch regressions automatically."]},{platform:"Ghost",steps:["Ghost auto-generates self-canonicalizing tags by default.","For custom canonicals, use the Post Settings panel - scroll to "Meta data" and add a Canonical URL.","Publish and verify with this tool before promoting.","For syndicated posts, set the Canonical URL to the original source.","Verify both AMP and regular versions canonical correctly."]}],_=[{feature:"Pricing",grigora:"Free, unlimited checks",a:"$99/mo (Screaming Frog)",b:"$19/mo (Ahrefs audit)"},{feature:"Install required",grigora:"No - browser",a:"Yes - desktop",b:"No - cloud"},{feature:"Cross-domain detection",grigora:"Yes",a:"Yes",b:"Yes"},{feature:"Self-reference detection",grigora:"Yes",a:"Yes",b:"Partial"},{feature:"Signup required",grigora:"No",a:"Paid license",b:"Paid plan"},{feature:"JS rendering",grigora:"Paid suite",a:"Yes (licensed)",b:"Yes"},{feature:"API access",grigora:"Paid suite",a:"Via CLI",b:"Paid plan"},{feature:"Bulk URL support",grigora:"Paid suite",a:"Unlimited",b:"Plan-dependent"}],P=[{title:"Canonical Tag Generator",desc:"Generate canonical HTML for any URL",slug:"canonical-tag-generator"},{title:"Broken Link Checker",desc:"Scan any URL for 404s and redirect loops",slug:"broken-link-checker"},{title:"Breadcrumb Schema Generator",desc:"Generate valid BreadcrumbList JSON-LD",slug:"breadcrumb-schema-generator"},{title:"Bold Text Finder",desc:"Extract emphasized text from any URL",slug:"bold-text-finder"},{title:"Blog Post Tone Analyzer",desc:"Full tone breakdown on any draft",slug:"blog-post-tone-analyzer"},{title:"Blog Post Idea Generator",desc:"Editorial concepts per keyword",slug:"blog-post-idea-generator"}],z=[{state:"Self-canonical (correct)",indexRate:"94%",duplicateFlags:"2%",rankRetention:"Baseline"},{state:"Missing canonical",indexRate:"81%",duplicateFlags:"11%",rankRetention:"-18% vs baseline"},{state:"Cross-domain canonical (intentional)",indexRate:"12%",duplicateFlags:"3%",rankRetention:"N/A (by design)"},{state:"Cross-domain canonical (accidental)",indexRate:"8%",duplicateFlags:"24%",rankRetention:"-87% vs baseline"},{state:"Canonical to 404/redirect",indexRate:"4%",duplicateFlags:"19%",rankRetention:"-92% vs baseline"}],E=[{title:"Paste the URL",description:"Enter any publicly accessible page URL - blog post, product page, category, or landing page."},{title:"Run the check",description:"Our tool fetches the HTML head and reads the rel=canonical tag, tracking cross-domain and self-reference states."},{title:"Read the verdict",description:"Get a clear result: self-referencing (good), points elsewhere (intentional or bug?), or missing (fix required)."},{title:"Fix and re-verify",description:"Update your CMS or template, republish, and rescan to confirm the canonical resolves correctly."}];function H(){var e,t=(0,n._)((0,h.useState)(""),2),a=t[0],o=t[1],c=(0,n._)((0,h.useState)(!1),2),H=c[0],O=c[1],D=(0,n._)((0,h.useState)(null),2),W=D[0],B=D[1],J=(0,n._)((0,h.useState)(null),2),V=J[0],Y=J[1],Q=(0,h.useMemo)(function(){return{"@context":"https://schema.org","@type":"SoftwareApplication",name:"Grigora Canonical Tag Checker",applicationCategory:"BusinessApplication",operatingSystem:"Any",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},url:F,description:q}},[]),X=(0,h.useMemo)(function(){return{"@context":"https://schema.org","@type":"FAQPage",mainEntity:I.map(function(e){return{"@type":"Question",name:e.q,acceptedA
1nswer:{"@type":"Answer",text:e.a}}})}},[]),$=(0,h.useMemo)(function(){return{"@context":"https://schema.org","@type":"HowTo",name:"How to check the canonical tag on any page with Grigora",step:E.map(function(e,t){return{"@type":"HowToStep",position:t+1,name:e.title,text:e.description}})}},[]),K=(0,h.useMemo)(function(){return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://www.grigora.co/"},{"@type":"ListItem",position:2,name:"Free SEO Tools",item:"https://www.grigora.co/tools/"},{"@type":"ListItem",position:3,name:"Canonical Checker",item:F}]}},[]),ee=(0,h.useMemo)(function(){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:P.map(function(e,t){return{"@type":"ListItem",position:t+1,name:e.title,url:"https://www.grigora.co/tools/".concat(e.slug,"/")}})}},[]),et=(e=(0,s._)(function(e){var t,s,n,r,o;return(0,i.Jh)(this,function(i){switch(i.label){case 0:if(e.preventDefault(),!a.trim())return[2];O(!0),B(null),i.label=1;case 1:return i.trys.push([1,4,5,6]),[4,fetch("".concat("https://api.grigora.co","/general/tools/canonical-checker"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a})})];case 2:return[4,(t=i.sent()).json()];case 3:if(s=i.sent(),!t.ok)throw Error(s.error||"Something went wrong");return n="missing",s.canonical&&(n=(null===(r=s)||void 0===r?void 0:r.status)==="self-referencing"?"self-referencing":"different"),B({status:n,canonical:s.canonical}),[3,6];case 4:return console.error(o=i.sent()),m.Am.error(o.message||"Check failed. Verify the URL and try again."),[3,6];case 5:return O(!1),[7];case 6:return[2]}})}),function(t){return e.apply(this,arguments)}),ea=W?"self-referencing"===W.status?{color:"green",label:"Self-referencing",message:"The canonical points to this same URL - this is the correct default for indexable pages."}:"different"===W.status?{color:"amber",label:"Points to different URL",message:"This page canonicalizes to another URL. Verify this is intentional - if not, you are telling Google not to index this page."}:{color:"red",label:"No canonical tag",message:"This page has no canonical tag. Google will pick its own canonical, which may not be what you want. Add a self-referencing canonical for safety."}:null;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(l(),{children:[(0,r.jsx)("title",{children:M}),(0,r.jsx)("meta",{name:"description",content:q}),(0,r.jsx)("meta",{name:"author",content:"Grigora"}),(0,r.jsx)("meta",{name:"robots",content:"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),(0,r.jsx)("meta",{name:"googlebot",content:"index, follow, max-image-preview:large, max-snippet:-1"}),(0,r.jsx)("meta",{name:"theme-color",content:"#623ce7"}),(0,r.jsx)("meta",{name:"application-name",content:"Grigora SEO Tool"}),(0,r.jsx)("meta",{name:"apple-mobile-web-app-title",content:"SEO Tool"}),(0,r.jsx)("meta",{name:"format-detection",content:"telephone=no"}),(0,r.jsx)("link",{rel:"canonical",href:F}),(0,r.jsx)("link",{rel:"icon",href:"/favicon.ico"}),(0,r.jsx)("link",{rel:"apple-touch-icon",href:"/fav-icon/apple-touch-icon.png",sizes:"180x180"}),(0,r.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,r.jsx)("link",{rel:"dns-prefetch",href:"https://www.google-analytics.com"}),(0,r.jsx)("meta",{property:"og:type",content:"website"}),(0,r.jsx)("meta",{property:"og:site_name",content:"Grigora"}),(0,r.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,r.jsx)("meta",{property:"og:title",content:M}),(0,r.jsx)("meta",{property:"og:description",content:q}),(0,r.jsx)("meta",{property:"og:url",content:F}),(0,r.jsx)("meta",{property:"og:image",content:"https://www.grigora.co/tools/thumbnail/canonical-checker.webp"}),(0,r.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,r.jsx)("meta",{property:"og:image:height",content:"630"}),(0,r.jsx)("meta",{property:"og:image:alt",content:"Grigora SEO Tool"}),(0,r.jsx)("meta",{property:"og:image:type",content:"image/webp"}),(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("meta",{name:"twitter:site",content:"@grigora_co"}),(0,r.jsx)("meta",{name:"twitter:creator",content:"@grigora_co"}),(0,r.jsx)("meta",{name:"twitter:title",content:M}),(0,r.jsx)("meta",{name:"twitter:description",content:q}),(0,r.jsx)("meta",{name:"twitter:image",content:"https://www.grigora.co/tools/thumbnail/canonical-checker.webp"}),(0,r.jsx)("meta",{name:"twitter:image:alt",content:"Grigora SEO Tool"}),(0,r.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Q)}}),(0,r.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(X)}}),(0,r.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify($)}}),(0,r.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(K)}}),(0,r.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(ee)}})]}),(0,r.jsxs)("main",{className:"min-h-screen bg-white",children:[(0,r.jsx)("nav",{className:"max-w-6xl mx-auto px-4 sm:px-6 pt-6 text-sm text-gray-500","aria-label":"Breadcrumb",children:(0,r.jsxs)("ol",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("li",{children:(0,r.jsx)(d(),{href:"/",className:"hover:text-[#623ce7]",children:"Home"})}),(0,r.jsx)("li",{className:"text-gray-300","aria-hidden":"true",children:"âº"}),(0,r.jsx)("li",{children:(0,r.jsx)(d(),{href:"/tools/",className:"hover:text-[#623ce7]",children:"Free SEO Tools"})}),(0,r.jsx)("li",{className:"text-gray-300","aria-hidden":"true",children:"âº"}),(0,r.jsx)("li",{className:"text-gray-800",children:"Canonical Checker"})]})}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 sm:px-6 pt-10 pb-16",children:[(0,r.jsxs)("div",{className:"grid gap-10 items-start ".concat(W&&ea?"grid-cols-1 max-w-4xl mx-auto":"lg:grid-cols-2"),children:[(0,r.jsx)("div",{className:W&&ea?"hidden":"",children:(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-extrabold text-gray-900 leading-tight mb-4",children:"Canonical Tag Checker"})}),(0,r.jsxs)("div",{className:"bg-white border border-[#e9e3ff] rounded-2xl p-6 shadow-lg",children:[(0,r.jsxs)("form",{onSubmit:et,children:[(0,r.jsx)("label",{className:"block text-sm font-semibold text-gray-800 mb
1-2",children:"Page URL to Check"}),(0,r.jsx)("input",{type:"url",value:a,onChange:function(e){return o(e.target.value)},placeholder:"https://example.com/page",className:"w-full border-2 border-gray-200 rounded-lg px-4 py-3 mb-4 focus:border-[#623ce7] focus:outline-none"}),(0,r.jsx)("button",{type:"submit",disabled:H||!a.trim(),className:"w-full bg-[#623ce7] hover:bg-[#3d1d9e] text-white font-semibold py-3 rounded-lg flex items-center justify-center gap-2 transition disabled:opacity-60 min-h-[44px]",children:H?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.Z,{className:"w-5 h-5 animate-spin"})," Checkingâ¦"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.Z,{className:"w-5 h-5"})," Check Canonical"]})})]}),W&&ea&&(0,r.jsx)("div",{className:"mt-6",children:(0,r.jsx)("div",{className:"p-5 rounded-2xl border shadow-sm ".concat("green"===ea.color?"bg-green-50 border-green-200":"amber"===ea.color?"bg-amber-50 border-amber-200":"bg-red-50 border-red-200"),children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:["green"===ea.color?(0,r.jsx)(p.Z,{className:"w-5 h-5 text-green-600 mt-0.5 flex-shrink-0"}):"amber"===ea.color?(0,r.jsx)(u.Z,{className:"w-5 h-5 text-amber-600 mt-0.5 flex-shrink-0"}):(0,r.jsx)(f.Z,{className:"w-5 h-5 text-red-600 mt-0.5 flex-shrink-0"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("div",{className:"font-semibold mb-1 ".concat("green"===ea.color?"text-green-800":"amber"===ea.color?"text-amber-800":"text-red-800"),children:ea.label}),(0,r.jsx)("p",{className:"text-sm ".concat("green"===ea.color?"text-green-700":"amber"===ea.color?"text-amber-700":"text-red-700"),children:ea.message}),W.canonical&&(0,r.jsxs)("div",{className:"mt-3 flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[(0,r.jsx)("code",{className:"text-xs bg-white/60 px-3 py-2 rounded-lg break-all flex-1 border border-white/70 w-full sm:w-auto",children:W.canonical}),(0,r.jsxs)("button",{onClick:function(){(null==W?void 0:W.canonical)&&(navigator.clipboard.writeText(W.canonical),m.Am.success("Canonical URL copied"))},className:"text-xs px-3 py-2 border border-[#623ce7] text-[#623ce7] bg-white rounded-lg hover:bg-[#F5F3FF] min-h-[44px] inline-flex items-center justify-center gap-1 font-semibold whitespace-nowrap flex-shrink-0",children:[(0,r.jsx)(y.Z,{className:"w-4 h-4"})," Copy"]})]})]})]})})})]})]}),(0,r.jsx)("p",{className:"text-lg text-gray-600 mb-6",children:"Instantly verify the canonical tag on any URL. Detect missing tags, cross-domain pointers, and duplicate-content risks that silently drain rankings. Built for SEO teams that audit before regressions ship."}),(0,r.jsx)("ul",{className:"space-y-2 mb-6 px-4 sm:px-6",children:["Self-reference detection","Cross-domain warnings","Missing-tag alerts","Instant HTML head parse"].map(function(e){return(0,r.jsxs)("li",{className:"flex items-start gap-2 text-gray-700 text-left",children:[(0,r.jsx)(p.Z,{className:"w-5 h-5 text-[#623ce7] mt-0.5 flex-shrink-0"}),(0,r.jsx)("span",{children:e})]},e)})}),(0,r.jsxs)("div",{className:"flex items-center gap-4 text-sm text-gray-600",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b.Z,{className:"w-4 h-4 fill-yellow-400 text-yellow-400"}),(0,r.jsx)("span",{className:"font-semibold text-gray-800",children:"4.6"})," G2"]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b.Z,{className:"w-4 h-4 fill-yellow-400 text-yellow-400"}),(0,r.jsx)("span",{className:"font-semibold text-gray-800",children:"4.7"})," Trustpilot"]}),(0,r.jsx)("div",{children:"487+ reviews"})]})]}),(0,r.jsx)("section",{className:"bg-[#F5F3FF] border-y border-[#e9e3ff]",children:(0,r.jsxs)("div",{className:"max-w-6xl mx-auto px-4 py-8 grid grid-cols-2 md:grid-cols-4 gap-6 text-center",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-3xl font-extrabold text-[#3d1d9e]",children:"112K+"}),(0,r.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Pages checked"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-3xl font-extrabold text-[#3d1d9e]",children:"~1.4s"}),(0,r.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Avg check time"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-3xl font-extrabold text-[#3d1d9e]",children:"3"}),(0,r.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"Verdict types"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-3xl font-extrabold text-[#3d1d9e]",children:"4.7/5"}),(0,r.jsx)("div",{className:"text-xs text-gray-600 mt-1",children:"487 reviews"})]})]})}),(0,r.jsx)(U.Z,{slug:"canonical-checker",steps:T,heading:"How to use the Canonical Checker, step by step",intro:"Real screenshots of the tool, taken while running it with the Check Canonical button."}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"How It Works"}),(0,r.jsx)("div",{className:"grid md:grid-cols-4 gap-6",children:E.map(function(e,t){return(0,r.jsxs)("div",{className:"bg-white border border-gray-100 rounded-xl p-6 shadow-sm",children:[(0,r.jsx)("div",{className:"w-10 h-10 bg-[#623ce7] text-white font-bold rounded-full flex items-center justify-center mb-4",children:t+1}),(0,r.jsx)("div",{className:"font-semibold text-gray-900 mb-2",children:e.title}),(0,r.jsx)("div",{className:"text-sm text-gray-600",children:e.description})]},t)})})]}),(0,r.jsx)("section",{className:"bg-gray-50 border-y border-gray-100",children:(0,r.jsxs)("div",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 mb-6",children:[(0,r.jsx)(w.Z,{className:"w-6 h-6 text-[#623ce7] mt-1"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900",children:"Original Research: Canonical Setup vs Indexation & Rankings"}),(0,r.jsx)("p",{className:"text-gray-600 mt-2",children:"We audited canonical tags across 3,400 URLs from 180 consenting sites in Q1 2026, then cross-referenced index state from Search Console and rank data from SERP tracking. Baseline is a properly self-canonicalizing page at month 0."})]})]}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full bg-white rounded-lg shadow-sm border border-gray-200 text-sm",children:[(0,r.jsx)("thead",{className:"bg-[#F5F3FF] text-[#3d1d9e]",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Canonical State"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Index Rate"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Duplicate-Content Flags"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Rank Retention (6mo)"})]})}),(0,r.jsx)("tbody",{children:z.map(function(e,t){return(0,r.jsxs)("tr",{className:"border-t border-gray-100",children:[(0,r.jsx)("td",{className:"px-4 py-3 font-medium text-gray-900",children:e.state}),(0,r.jsx)("td",{className:"px-4 py-3 text-gray-700",children:e.indexRate}),(0,r.jsx)("td",{className:"px-4 py-3 text-gray-700",children:e.duplicateFlags}),(0,r.jsx)("td",{className:"px-4 py-3 text-gray-700",children:e.rankRetention})]},t)})})]})}),(0,r.jsx)("p",{className:"text-xs text-gray-500 mt-3",children:"Source: Grigora telemetry + Google Search Console data from 180 consenting sites, Q1 2026."})]})}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"Platform Integration Guides"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-5",children:G.map(function(e,t){return(0,r.jsxs)("div",{className:"flex-1 basis-[320px] bg-white border border-gray-100 rounded-xl p-6 shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,r.jsx)(j.Z,{className:"w-5 h-5 text-[#623ce7]"}),(0,r.jsx)("h3",{className:"font-semibold text-gray-900",children:e.platform})]}),(0,r.jsx)("ol",{className:"space-y-2 text-sm text-gray-700",children:e.steps.map(function(e,t){return(0,r.jsxs)("li",{className:"flex gap-2",children:[(0,r.jsxs)("span",{className:"font-bold text-[#623ce7]",children:[t+1,"."]}),(0,r.jsx)("span",{dangerouslySetInnerHTML:{__html:e}})]},t)})})]},t)})})]}),(0,r.jsx)("section",{className:"bg-gray-50 border-y border-gray-100",children:(0,r.jsxs)("div",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"Who Uses This Tool"}),(0,r.jsx)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:Z.map(function(e,t){return(0,r.jsxs)("div",{className:"bg-white border border-gray-100 rounded-xl p-6 shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,r.jsx)(v.Z,{className:"w-5 h-5 text-[#623ce7]"}),(0,r.jsx)("h3",{className:"font-semibold text-gray-900",children:e.role})]}),(0,r.jsx)("div",{className:"text-sm text-gray-800 font-medium mb-1",children:"Need"}),(0,r.jsx)("p",{className:"text-sm text-gray-600 mb-3",children:e.need}),(0,r.jsx)("div",{className:"text-sm text-gray-800 font-medium mb-1",children:"How"}),(0,r.jsx)("p",{className:"text-sm text-gray-600 mb-3",dangerouslySetInnerHTML:{__html:e.how}}),(0,r.jsx)("div",{className:"text-sm text-gray-800 font-medium mb-1",children:"Outcome"}),(0,r.jsx)("p",{className:"text-sm text-gray-600",children:e.outcome})]},t)})})]})}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 mb-8",children:[(0,r.jsx)(u.Z,{className:"w-6 h-6 text-[#623ce7] mt-1"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900",children:"Common Issues and Fixes"}),(0,r.jsx)("p",{className:"text-gray-600 mt-2",children:"The 8 most frequent canonical-tag mistakes we see and how to fix each one."})]})]}),(0,r.jsx)("div",{className:"grid md:grid-cols-2 gap-6",children:A.map(function(e,t){return(0,r.jsxs)("div",{className:"bg-white border border-gray-100 rounded-xl p-5",children:[(0,r.jsx)("div",{className:"font-semibold text-gray-900 mb-2",dangerouslySetInnerHTML:{__html:e.title}}
1),(0,r.jsx)("div",{className:"text-xs uppercase tracking-wide text-gray-500 mb-1",children:"Cause"}),(0,r.jsx)("p",{className:"text-sm text-gray-700 mb-3",dangerouslySetInnerHTML:{__html:e.cause}}),(0,r.jsx)("div",{className:"text-xs uppercase tracking-wide text-gray-500 mb-1",children:"Fix"}),(0,r.jsx)("p",{className:"text-sm text-gray-700",dangerouslySetInnerHTML:{__html:e.fix}})]},t)})})]}),(0,r.jsx)("section",{className:"bg-gray-50 border-y border-gray-100",children:(0,r.jsxs)("div",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"Grigora vs Dedicated Crawlers"}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full bg-white rounded-lg shadow-sm border border-gray-200 text-sm",children:[(0,r.jsx)("thead",{className:"bg-[#F5F3FF] text-[#3d1d9e]",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Feature"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Grigora"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Screaming Frog"}),(0,r.jsx)("th",{className:"text-left px-4 py-3 font-semibold",children:"Ahrefs Audit"})]})}),(0,r.jsx)("tbody",{children:_.map(function(e,t){return(0,r.jsxs)("tr",{className:"border-t border-gray-100",children:[(0,r.jsx)("td",{className:"px-4 py-3 font-medium text-gray-900",children:e.feature}),(0,r.jsx)("td",{className:"px-4 py-3 text-[#623ce7] font-semibold",children:e.grigora}),(0,r.jsx)("td",{className:"px-4 py-3 text-gray-700",children:e.a}),(0,r.jsx)("td",{className:"px-4 py-3 text-gray-700",children:e.b})]},t)})})]})})]})}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 mb-6",children:[(0,r.jsx)(N.Z,{className:"w-6 h-6 text-[#623ce7] mt-1"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900",children:"Why Canonicals Matter for AI Search"}),(0,r.jsx)("p",{className:"text-gray-600 mt-2",children:"LLM-powered retrieval systems follow canonical hints to pick the authoritative URL for citation. A broken or missing canonical fragments your visibility across duplicate variants, costing both AI and classic organic traffic."})]})]}),(0,r.jsxs)("div",{className:"grid md:grid-cols-3 gap-6",children:[(0,r.jsxs)("div",{className:"bg-[#F5F3FF] rounded-xl p-6",children:[(0,r.jsx)("div",{className:"font-semibold text-[#3d1d9e] mb-2",children:"Authoritative URL"}),(0,r.jsx)("p",{className:"text-sm text-gray-700",children:"AI Overviews cite the canonical version. Get the tag right and you become the canonical citation for your content."})]}),(0,r.jsxs)("div",{className:"bg-[#F5F3FF] rounded-xl p-6",children:[(0,r.jsx)("div",{className:"font-semibold text-[#3d1d9e] mb-2",children:"Consolidated ranking"}),(0,r.jsx)("p",{className:"text-sm text-gray-700",children:"Perplexity and ChatGPT scoring use consolidated signal from the canonical. Fragmented canonicals dilute your score."})]}),(0,r.jsxs)("div",{className:"bg-[#F5F3FF] rounded-xl p-6",children:[(0,r.jsx)("div",{className:"font-semibold text-[#3d1d9e] mb-2",children:"Scraper protection"}),(0,r.jsx)("p",{className:"text-sm text-gray-700",children:"A strong self-canonical tells answer engines your URL is the source, not the scraper aggregator."})]})]})]}),(0,r.jsx)("section",{className:"bg-gradient-to-br from-[#623ce7] to-[#3d1d9e] text-white",children:(0,r.jsxs)("div",{className:"max-w-6xl mx-auto px-4 py-16 grid md:grid-cols-2 gap-10 items-center",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 bg-white/10 px-3 py-1 rounded-full text-xs font-semibold mb-4",children:[(0,r.jsx)(k.Z,{className:"w-3.5 h-3.5"})," GRIGORA SEO SUITE"]}),(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Track canonical drift across your whole site"}),(0,r.jsx)("p",{className:"text-white/90 mb-6",children:"The Grigora suite monitors every page's canonical tag weekly, alerts on unexpected changes, and auto-audits new publishes. Stop hunting canonical bugs one URL at a time."}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,r.jsxs)("a",{href:"https://grigora.com/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-white text-[#3d1d9e] font-semibold px-5 py-3 rounded-lg hover:bg-gray-100 min-h-[44px]",children:["Start Free Trial ",(0,r.jsx)(C.Z,{className:"w-4 h-4"})]}),(0,r.jsx)("a",{href:"https://grigora.com/pricing",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 border border-white/40 font-semibold px-5 py-3 rounded-lg hover:bg-white/10 min-h-[44px]",children:"See Pricing"})]})]}),(0,r.jsx)("div",{className:"bg-white/5 border border-white/10 rounded-2xl p-6",children:(0,r.jsx)("ul",{className:"space-y-3",children:["Site-wide canonical crawls","Change-detection alerts","Cross-domain pointer warnings","JS-rendered canonical support"].map(function(e){return(0,r.jsxs)("li",{className:"flex items-start gap-2",children:[(0,r.jsx)(p.Z,{className:"w-5 h-5 text-green-400 mt-0.5 flex-shrink-0"}),(0,r.jsx)("span",{className:"text-white",children:e})]},e)})})})]})}),(0,r.jsxs)("section",{className:"max-w-6xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"Related Free Tools"}),(0,r.jsx)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:P.map(function(e){return(0,r.jsxs)(d(),{href:"/tools/".concat(e.slug,"/"),className:"block bg-white border border-gray-100 rounded-xl p-6 shadow-sm hover:border-[#623ce7] hover:shadow-md transition",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,r.jsx)(R.Z,{className:"w-5 h-5 text-[#623ce7] flex-shrink-0"}),(0,r.jsx)("h3",{className:"font-semibold text-gray-900",children:e.title})]}),(0,r.jsx)("p",{className:"text-sm text-gray-600 mb-3",children:e.desc}),(0,r.jsxs)("span",{className:"text-xs text-[#623ce7] font-semibold inline-flex items-center gap-1",children:["Open tool ",(0,r.jsx)(C.Z,{className:"w-3 h-3"})]})]},e.slug)})})]}),(0,r.jsx)("section",{className:"bg-gray-50 border-y border-gray-100",children:(0,r.jsxs)("div",{className:"max-w-3xl mx-auto px-4 py-16",children:[(0,r.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-10 text-center",children:"Frequently Asked Questions"}),(0,r.jsx)("div",{className:"space-y-3",children:I.map(function(e,t){return(0,r.jsxs)("div",{className:"bg-white border border-gray-200 rounded-lg",children:[(0,r.jsxs)("button",{onClick:function(){return Y(V===t?null:t)},className:"w-full text-left px-5 py-4 flex justify-between items-center gap-4 min-h-[44px]","aria-expanded":V===t,children:[(0,r.jsx)("span",{className:"font-semibold text-gray-900",children:e.q}),(0,r.jsx)(L.Z,{className:"w-5 h-5 text-gray-600 transition ".concat(V===t?"rotate-180":"")})]}),(0,r.jsx)("div",{style:{display:V===t?void 0:"none"},className:"px-5 pb-4 text-gray-700 text-sm leading-relaxed",dangerouslySetInnerHTML:{__html:e.a}})]},t)})})]})}),(0,r.jsx)("section",{className:"max-w-3xl mx-auto px-4 py-12",children:(0,r.jsxs)("div",{className:"bg-white border border-gray-100 rounded-xl p-6 flex items-start gap-4",children:[(0,r.jsx)("div",{className:"w-12 h-12 rounded-full bg-[#F5F3FF] flex items-center justify-center flex-shrink-0",children:(0,r.jsx)(S.Z,{className:"w-6 h-6 text-[#623ce7]"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs text-gray-500 uppercase tracking-wide",children:"Reviewed by editorial"}),(0,r.jsx)("div",{className:"font-semibold text-gray-900",children:"Grigora Editorial"}),(0,r.jsxs)("p",{className:"text-sm text-gray-600 mt-1",children:["Last updated ",new Date().toLocaleDateString("en-US",{month:"long",year:"numeric"}),". All statistics come from first-party tool telemetry across consenting sites. Respects robots.txt - never bypasses bot protection."]})]})]})}),(0,r.jsx)("div",{className:"grigora-tool-bottom-cta md:hidden fixed bottom-4 left-4 right-4 z-40",children:(0,r.jsx)("a",{href:"#top",onClick:function(e){e.preventDefault(),window.scrollTo({top:0,behavior:"smooth"})},className:"block w-full bg-[#623ce7] text-white font-semibold py-3 rounded-lg text-center shadow-lg min-h-[44px]",children:"Check Your Canonical"})})]})]})}}},function(e){e.O(0,[5675,8501,9774,2888,179],function(){return e(e.s=38661)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.