[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"blog-cat-content":3},[4,266],{"id":5,"title":6,"author":7,"body":8,"category":249,"cover":250,"coverAlt":251,"description":252,"draft":253,"extension":254,"featured":253,"meta":255,"navigation":250,"path":256,"publishedAt":257,"seo":258,"stem":259,"tags":260,"updatedAt":264,"__hash__":265},"blog/blog/keyword-cannibalization.md","Keyword Cannibalization: How to Find and Fix It","SeoSitemap.app",{"type":9,"value":10,"toc":230},"minimark",[11,15,18,23,31,34,39,42,50,54,57,61,64,67,71,74,91,97,110,114,121,125,132,135,139,145,148,152,164,167,171,174,177,186,190],[12,13,14],"p",{},"You wrote two solid articles on the same broad topic, published both, and now neither ranks as well as you hoped. The pages aren't fighting Google — they're fighting each other. That's keyword cannibalisation, and it's one of the quieter ways a growing site sabotages its own search performance.",[12,16,17],{},"The good news: it's diagnosable and fixable without guesswork. In this guide we'll define what cannibalisation actually is (and clear up a common myth), show you how to spot it across a whole site quickly, and walk through a decision framework for fixing each case.",[19,20,22],"h2",{"id":21},"what-keyword-cannibalisation-really-is","What keyword cannibalisation really is",[12,24,25,26,30],{},"Keyword cannibalisation happens when two or more pages on your site target the same ",[27,28,29],"strong",{},"search intent"," — the underlying job a searcher is trying to get done — so they end up competing for the same positions in the results. Google has to pick one URL per site for a given query in most cases, and when your pages are too similar, it picks for you. Often it picks badly, splitting signals (links, clicks, relevance) across both pages so neither earns the authority a single consolidated page would.",[12,32,33],{},"The symptoms are familiar. Rankings flip-flop between two URLs week to week. A page that used to sit at position four slides to nine when you publish a near-duplicate. Internal links and backlinks get diluted because they point at two competing destinations instead of one.",[35,36,38],"h3",{"id":37},"the-myth-its-about-overlapping-intent-not-reused-keywords","The myth: it's about overlapping intent, not reused keywords",[12,40,41],{},"The biggest misconception is that cannibalisation means \"using the same keyword on more than one page\". It doesn't. You can mention \"running shoes\" on dozens of pages — a category page, a buying guide, individual product pages, a blog post about marathon training — without any of them cannibalising each other, because each serves a different intent.",[12,43,44,45,49],{},"Cannibalisation is about intent overlap. \"Best running shoes for beginners\" and \"running shoes for new runners\" are different strings but the ",[46,47,48],"em",{},"same"," intent, so two articles built around them will compete. Meanwhile \"buy Nike Pegasus 41\" (transactional) and \"how to choose running shoes\" (informational) share words but serve genuinely different needs, so they coexist happily. When you audit, ask \"would the same searcher be satisfied by either page?\" If yes, you have overlap worth fixing.",[19,51,53],{"id":52},"how-to-detect-it","How to detect it",[12,55,56],{},"There are two reliable signals, and you'll usually want both.",[35,58,60],{"id":59},"search-console-one-query-multiple-urls","Search Console: one query, multiple URLs",[12,62,63],{},"The clearest evidence lives in Google Search Console. Open Performance, add a filter for a specific query, then switch to the Pages tab. If a single query is being served by two or more of your URLs over time — especially if their positions are similar and unstable — those pages are competing for it. Sort by impressions to find the queries that matter most, and watch for queries where the average position is mediocre despite decent impressions. That mediocrity is often two pages each pulling the other down.",[12,65,66],{},"This tells you which queries are affected, but it's slow to review one query at a time, and it only surfaces pages Google already has data for.",[35,68,70],{"id":69},"duplicate-titles-and-h1s-across-the-site","Duplicate titles and H1s across the site",[12,72,73],{},"The faster, more structural signal is duplication in your on-page metadata. When two pages carry near-identical title tags or the same H1 heading, that's a strong hint they were written around the same intent — and it's something you can check across an entire site at once, before Search Console has even accumulated data.",[12,75,76,77,82,83,86,87,90],{},"This is exactly what our ",[78,79,81],"a",{"href":80},"/content-analysis","Content Analyser"," is built for. Point it at your site and it pulls every URL from your sitemap, then groups identical and near-identical H1s and title tags across the whole site so the clusters jump out immediately. Instead of squinting at one query at a time, you get a list: \"these four pages all use the H1 ",[46,84,85],{},"Email Marketing Tips","\", \"these two share the title ",[46,88,89],{},"Pricing","\". Each cluster is a cannibalisation candidate to investigate.",[12,92,93,94,96],{},"A practical workflow: run the ",[78,95,81],{"href":80}," first to find the structural duplicates fast, then confirm the real damage in Search Console for the clusters that matter. Structure tells you where to look; Search Console tells you whether it's actually costing you rankings.",[12,98,99,100,104,105,109],{},"If the analyser only sees part of your site, the problem is usually that pages are missing from your sitemap — so the auditor never reaches them. Run the ",[78,101,103],{"href":102},"/sitemap-checker","sitemap checker"," to confirm your sitemap is complete and valid first, and if you're not sure where your sitemap even lives, our guide on ",[78,106,108],{"href":107},"/blog/how-to-find-your-sitemap","how to find your sitemap"," walks through it.",[19,111,113],{"id":112},"the-fix-framework","The fix framework",[12,115,116,117,120],{},"Once you've identified a cluster, you have three options. Pick based on whether the pages ",[46,118,119],{},"should"," exist separately at all.",[35,122,124],{"id":123},"_1-merge-the-weaker-page-into-the-stronger-one","1. Merge the weaker page into the stronger one",[12,126,127,128,131],{},"This is the right call when both pages target the same intent and there's no good reason to keep two. Decide which page is stronger — usually the one with more backlinks, better rankings, higher engagement, or simply the better-written piece. Fold the unique, useful content from the weaker page into the stronger one so nothing valuable is lost, then ",[27,129,130],{},"301-redirect"," the weaker URL to the stronger one.",[12,133,134],{},"The 301 (a permanent redirect) matters: it passes the weaker page's accumulated link equity to the survivor and tells search engines the content has permanently moved, consolidating the signals you'd otherwise be splitting. Update any internal links that pointed at the old URL so they target the survivor directly rather than bouncing through the redirect.",[35,136,138],{"id":137},"_2-differentiate-the-intent-and-headings","2. Differentiate the intent and headings",[12,140,141,142,144],{},"Sometimes the two pages ",[46,143,119],{}," exist — they were just written too similarly. Maybe one was meant to be a beginner overview and the other an advanced deep-dive, but both drifted into covering the same middle ground. Here the fix is editorial: pull them apart so each clearly owns a distinct intent.",[12,146,147],{},"Rewrite the titles, H1s, and opening paragraphs to signal who each page is for. Trim the overlapping sections from each so they stop repeating one another, and add internal links between them (\"new to this? start with our beginner's guide\") so the relationship is explicit. Done well, you turn two competing pages into a complementary pair that each rank for their own queries.",[35,149,151],{"id":150},"_3-canonicalise-when-they-must-coexist","3. Canonicalise when they must coexist",[12,153,154,155,158,159,163],{},"Occasionally you need two near-identical pages for reasons that have nothing to do with search — say a printable version, or the same product reachable through two category paths. When the duplication is unavoidable, use a ",[27,156,157],{},"canonical tag"," (a ",[160,161,162],"code",{},"\u003Clink rel=\"canonical\">"," pointing at the preferred URL) to tell search engines which version is the original. Search engines then consolidate ranking signals onto the canonical and leave the duplicate out of the index, without you having to delete or redirect anything.",[12,165,166],{},"Canonicalisation is the weakest of the three because it's a hint rather than a command, and it doesn't help users who land on the \"wrong\" version. Reach for merge or differentiate first; canonicalise only when neither fits.",[19,168,170],{"id":169},"how-to-prevent-it","How to prevent it",[12,172,173],{},"Fixing cannibalisation is satisfying, but not creating it is cheaper. Two habits do most of the work.",[12,175,176],{},"First, keep a simple content plan that maps one primary intent to one page. Before commissioning anything new, check whether an existing page already owns that intent — if it does, improve that page instead of publishing a rival. A spreadsheet of \"page → primary query → intent\" is enough; the point is forcing the question before you write.",[12,178,179,180,182,183,185],{},"Second, use internal linking deliberately to nominate the canonical page for each topic. When you consistently link to the ",[46,181,48],{}," page with the same descriptive anchor text whenever a topic comes up, you tell search engines which page is the authoritative one — and you tell yourself, which keeps future articles from drifting into its territory. Re-running the ",[78,184,81],{"href":80}," after big publishing pushes turns this into a routine: catch new duplicate H1s and titles before they've had time to hurt.",[19,187,189],{"id":188},"key-takeaways","Key takeaways",[191,192,193,200,206,212,218,224],"ul",{},[194,195,196,199],"li",{},[27,197,198],{},"Cannibalisation is about overlapping intent, not reused keywords"," — the test is whether the same searcher would be satisfied by either page.",[194,201,202,205],{},[27,203,204],{},"Detect it two ways",": one query serving multiple URLs in Search Console, and duplicate titles or H1s across your site. Structure points you to the problem; Search Console confirms the cost.",[194,207,208,211],{},[27,209,210],{},"Our Content Analyser groups identical and near-identical H1s and titles across the whole site",", so cannibalisation clusters surface fast — far quicker than reviewing queries one at a time.",[194,213,214,217],{},[27,215,216],{},"Fix with one of three moves",": merge the weaker page and 301-redirect it, differentiate the intent and headings, or canonicalise when the pages genuinely must coexist.",[194,219,220,223],{},[27,221,222],{},"Prefer merge or differentiate over canonicalise"," — a canonical is a hint, and it doesn't help users who land on the duplicate.",[194,225,226,229],{},[27,227,228],{},"Prevent it"," with a one-intent-per-page content plan and consistent internal linking that nominates the authoritative page for each topic.",{"title":231,"searchDepth":232,"depth":232,"links":233},"",2,[234,238,242,247,248],{"id":21,"depth":232,"text":22,"children":235},[236],{"id":37,"depth":237,"text":38},3,{"id":52,"depth":232,"text":53,"children":239},[240,241],{"id":59,"depth":237,"text":60},{"id":69,"depth":237,"text":70},{"id":112,"depth":232,"text":113,"children":243},[244,245,246],{"id":123,"depth":237,"text":124},{"id":137,"depth":237,"text":138},{"id":150,"depth":237,"text":151},{"id":169,"depth":232,"text":170},{"id":188,"depth":232,"text":189},"content",true,"Keyword Cannibalization: How to Find and Fix It — SeoSitemap.app blog cover","What keyword cannibalization actually is, how to tell whether two of your pages are competing, and a practical workflow to fix it — merge, differentiate, or canonicalise.",false,"md",{},"/blog/keyword-cannibalization","2026-06-06",{"title":6,"description":252},"blog/keyword-cannibalization",[261,262,263],"keyword-cannibalization","duplicate-content","content-strategy",null,"aLUKvlevbrrww5K0-ytTYl3TT8A8iQL4CXt45GVWD3s",{"id":267,"title":268,"author":7,"body":269,"category":249,"cover":250,"coverAlt":548,"description":549,"draft":253,"extension":254,"featured":253,"meta":550,"navigation":250,"path":551,"publishedAt":552,"seo":553,"stem":554,"tags":555,"updatedAt":264,"__hash__":560},"blog/blog/meta-tag-length.md","Title & Meta Description Length: What Google Actually Shows",{"type":9,"value":270,"toc":534},[271,274,277,281,284,291,295,317,320,348,352,359,363,370,373,377,384,388,395,399,402,409,413,416,431,434,460,469,473,481,488,491,493],[12,272,273],{},"Your title tag and meta description are the two lines a searcher reads before deciding whether to click. They are also the two pieces of metadata most likely to get cut off mid-word, quietly rewritten by Google, or left blank because nobody filled them in. None of that is catastrophic on its own, but together it adds up to a search result that undersells the page behind it.",[12,275,276],{},"This guide covers the practical limits for both, why Google so often ignores what you wrote, and how to write titles and descriptions that survive truncation and still earn the click. We will keep the rules of thumb honest: they are guides, not laws, and the real constraint is pixels, not characters.",[19,278,280],{"id":279},"why-length-matters-at-all","Why length matters at all",[12,282,283],{},"The search engine results page (SERP) gives each result a fixed amount of horizontal space. When your title or description overflows that space, Google truncates it — usually with an ellipsis (…) — and the part that gets cut is the end. If your most persuasive words live there, the searcher never sees them.",[12,285,286,287,290],{},"Truncation rarely tanks your rankings directly. What it costs you is click-through rate (CTR): the share of people who see your result and actually click it. A result that reads ",[160,288,289],{},"How to Audit Your Site's Heading Structure in Und…"," is doing less work than one that finishes its thought. On a page that ranks well but converts few of its impressions into visits, tightening the title and description is some of the cheapest SEO work you can do.",[19,292,294],{"id":293},"title-tags-the-pixel-width-reality","Title tags: the pixel-width reality",[12,296,297,298,301,302,305,306,309,310,305,313,316],{},"Here is the detail most \"title tag length\" advice skips: ",[27,299,300],{},"Google truncates titles by pixel width, not character count."," Desktop results have roughly 580 pixels of room for the title. A title of capital ",[160,303,304],{},"W","s and ",[160,307,308],{},"M","s fills that space far faster than one of ",[160,311,312],{},"i",[160,314,315],{},"l","s, so two titles with the same character count can render completely differently — one whole, one clipped.",[12,318,319],{},"You do not need to count pixels by hand. The reliable shortcut is this:",[191,321,322,328,342],{},[194,323,324,327],{},[27,325,326],{},"Aim for about 50–60 characters."," Below ~60 characters, most titles render in full on desktop. Treat 60 as a soft ceiling, not a finish line.",[194,329,330,333,334,337,338,341],{},[27,331,332],{},"Watch the wide letters."," A 58-character title that is mostly uppercase or full of ",[160,335,336],{},"m","/",[160,339,340],{},"w"," can still be cut. If a title is visually dense, trim it a little harder.",[194,343,344,347],{},[27,345,346],{},"Mobile is narrower."," Phones wrap rather than clip, but the principle holds: shorter titles read cleanly across more devices.",[35,349,351],{"id":350},"front-load-the-words-that-matter","Front-load the words that matter",[12,353,354,355,358],{},"Because the end is what gets cut, put your most important, most descriptive terms first. A title like ",[160,356,357],{},"Meta Tags Checker — Audit Titles & Descriptions Across Your Site"," leads with what the page is. The reverse — opening with your brand or a generic phrase — wastes the prime real estate that always survives truncation.",[35,360,362],{"id":361},"where-the-brand-goes","Where the brand goes",[12,364,365,366,369],{},"For most pages, append your brand at the end, separated by a pipe or dash: ",[160,367,368],{},"Sitemap Validator | SeoSitemap.app",". That way, if Google clips the title, it loses the brand (which the searcher can often infer from the URL) rather than the descriptive part. The homepage is the natural exception — there, leading with the brand makes sense.",[12,371,372],{},"Two small habits prevent a surprising number of problems. Make every title unique: duplicate titles across pages confuse both searchers and Google, and they are a classic symptom of templating gone wrong. And give every page a title at all — a missing title tag forces Google to invent one from whatever it can find, usually the page's first heading or a snippet of body text.",[19,374,376],{"id":375},"meta-descriptions-a-ctr-tool-not-a-ranking-signal","Meta descriptions: a CTR tool, not a ranking signal",[12,378,379,380,383],{},"Let us be precise about what a meta description does. It is ",[27,381,382],{},"not a ranking factor"," — Google has said for years that the text of your description does not influence where you rank. What it does influence is whether anyone clicks. It is your sales pitch in the SERP, the one chance to explain in your own words why this result answers the query.",[35,385,387],{"id":386},"the-150160-character-guide","The ~150–160 character guide",[12,389,390,391,394],{},"As a practical limit, ",[27,392,393],{},"keep descriptions to about 150–160 characters."," Like titles, the true constraint is pixel width and the cut-off varies — Google has at times shown longer snippets and at other times shorter ones — but 150–160 is the range that renders reliably on desktop without getting clipped. On mobile the visible portion is shorter still, so the first sentence has to carry the weight.",[35,396,398],{"id":397},"write-for-the-query-not-the-keyword","Write for the query, not the keyword",[12,400,401],{},"A good description does three things: it confirms the page matches what the searcher asked, it previews the value (a number, a benefit, a specific feature), and it does so in natural language. \"Free meta tags checker — scan every page on your site and flag titles or descriptions that are too long, too short, or missing\" tells a searcher exactly what they will get. Stuffing the same keyword three times does the opposite; it reads like spam and Google may discard it.",[12,403,404,405,408],{},"One more reason to write a good one: when your description contains the words the searcher typed, Google ",[27,406,407],{},"bolds"," those terms in the snippet. A description written around the genuine query naturally collects those bolded matches, which makes the result more eye-catching.",[19,410,412],{"id":411},"why-google-rewrites-your-tags-and-how-to-reduce-the-odds","Why Google rewrites your tags — and how to reduce the odds",[12,414,415],{},"You can write a perfect title and description and still see something different in the wild. Google frequently rewrites both, and understanding why helps you write tags it is more likely to keep.",[12,417,418,419,422,423,426,427,430],{},"Google rewrites a ",[27,420,421],{},"title"," when it judges your version to be a poor fit for the query — too long, half-empty boilerplate, keyword-stuffed, identical across many pages, or simply less descriptive than your own ",[160,424,425],{},"\u003Ch1>"," or a clear bit of on-page text. It rewrites a ",[27,428,429],{},"description"," even more readily: if your description does not address the specific search, Google will often pull a more relevant sentence straight from the page body instead. This is why the same page can show different descriptions for different queries — there is no single \"the\" snippet.",[12,432,433],{},"You cannot force Google to use your text, but you can stack the odds:",[191,435,436,442,448,454],{},[194,437,438,441],{},[27,439,440],{},"Be accurate and specific."," Tags that genuinely summarise the page get kept far more often than vague ones.",[194,443,444,447],{},[27,445,446],{},"Match real search intent."," If people reach the page via several distinct queries, a description that speaks to the page's core purpose travels better than one tuned to a single phrase.",[194,449,450,453],{},[27,451,452],{},"Avoid the obvious triggers."," Cut keyword stuffing, kill duplicate tags, and make sure nothing is auto-generated filler.",[194,455,456,459],{},[27,457,458],{},"Keep within the visible limits."," A tag that fits is a tag Google has less reason to trim or replace.",[12,461,462,463,465,466,468],{},"Treat rewrites as feedback. If Google consistently swaps your title for your ",[160,464,425],{},", that is a strong hint your ",[160,467,425],{}," is the clearer summary — so bring your title closer to it.",[19,470,472],{"id":471},"auditing-length-across-every-page-at-once","Auditing length across every page at once",[12,474,475,476,480],{},"Checking one page in a browser tab is easy. Checking five hundred is not, and that is exactly where length problems hide — in the templated pages nobody reviews by hand. This is the job our ",[78,477,479],{"href":478},"/meta-tags-checker","Meta Tags Checker"," is built for: point it at your site and it crawls every page, then flags titles and descriptions that are too long, too short, or missing entirely, so you can fix the worst offenders first instead of guessing.",[12,482,483,484,487],{},"To make sure the crawler reaches every page worth checking, it is worth confirming your sitemap is complete and valid first — our ",[78,485,486],{"href":102},"Sitemap Checker"," pulls and validates the sitemap that feeds the audit. A page missing from your sitemap is a page whose tags you will never get around to reviewing.",[12,489,490],{},"Work through the results in priority order: missing tags first (Google is improvising those completely), then over-length titles on pages that already rank (where truncation is costing you clicks you have already earned), then thin or duplicate descriptions. You will usually find that a handful of templates are responsible for most of the issues, so one fix can clear dozens of pages.",[19,492,189],{"id":188},[191,494,495,501,507,513,519,525],{},[194,496,497,500],{},[27,498,499],{},"Titles are limited by pixel width, not characters"," — use ~50–60 characters as a safe rule of thumb and trim harder when the text is visually wide.",[194,502,503,506],{},[27,504,505],{},"Front-load the descriptive words"," and put your brand at the end, so truncation eats the least important part.",[194,508,509,512],{},[27,510,511],{},"Meta descriptions do not affect rankings"," but they drive CTR; aim for ~150–160 characters and write for the actual query.",[194,514,515,518],{},[27,516,517],{},"Google rewrites titles and descriptions often"," — keep tags accurate, specific, unique, and within the visible limits to reduce the odds.",[194,520,521,524],{},[27,522,523],{},"Audit at scale, not page by page."," Use the meta tags checker to flag length problems across the whole site, after validating your sitemap so nothing is missed.",[194,526,527,530,531,533],{},[27,528,529],{},"Treat rewrites as feedback"," — if Google keeps swapping in your ",[160,532,425],{},", your title probably should look more like it.",{"title":231,"searchDepth":232,"depth":232,"links":535},[536,537,541,545,546,547],{"id":279,"depth":232,"text":280},{"id":293,"depth":232,"text":294,"children":538},[539,540],{"id":350,"depth":237,"text":351},{"id":361,"depth":237,"text":362},{"id":375,"depth":232,"text":376,"children":542},[543,544],{"id":386,"depth":237,"text":387},{"id":397,"depth":237,"text":398},{"id":411,"depth":232,"text":412},{"id":471,"depth":232,"text":472},{"id":188,"depth":232,"text":189},"Title & Meta Description Length: What Google Actually Shows — SeoSitemap.app blog cover","The practical limits for title tags and meta descriptions, why Google rewrites them, and how to write ones that survive truncation and earn more clicks.",{},"/blog/meta-tag-length","2026-06-04",{"title":268,"description":549},"blog/meta-tag-length",[556,557,558,559],"meta-tags","title-tag","meta-description","ctr","Sv1BV1dIWNeuslAdhc7xAUNxHLEZ0XLPhYuCksfLIN0",1780861390801]