Content SEO for your own site: keyword mapping and internal links for product, category, and blog pages
1. Keyword roles for the three page types: separate intent first
Google sorts search queries into three intents: informational, navigational, and transactional. An independent site has exactly three page types to match them, and mixing them up wastes effort. Start with a full-site audit: sort existing pages by intent before you plan the layout.
| Page type | Matching intent | Primary keyword traits | Example queries |
|---|---|---|---|
| Product Page | Transactional | Model terms, spec terms, buy/price | XSR300 pressure washer specs |
| Category page | Navigational | Category terms, use-case terms, country terms | commercial pressure washers for farms |
| Blog page | Informational | Question terms, how to, what is | how often should I replace pump seals |
One test: if the first screen shows “Request a quote,” “Add to cart,” or “Download spec sheet,” it’s a conversion page and shouldn’t carry educational duties. If the first screen is all text with no conversion buttons, it’s an educational page, so don’t expect it to rank for transactional terms. Run a Site-wide content inventory pass to flag the pages that are in the wrong slot.
2. Product pages: where the primary keyword goes and how long the body should be
Product page SEO isn’t about body length; it’s about complete fields. Put the primary keyword in four places: the first 60 characters of the title, the H1, the meta description, and the Product Schema. Two or three natural mentions in the body is enough; don’t push past 10.
| Location | How it’s written | Length | Common mistake |
|---|---|---|---|
| Title | Model + specs + brand | ≤60 characters | Wasting the front slot on the brand |
| H1 | Full model name once | ≤70 characters | H1 duplicates the title exactly |
| Meta description | Model + one selling point + CTA | 120 to 160 characters | “Welcome to inquire” says nothing |
| Body | 3 paragraphs: specs, applications, certifications | 300 to 600 words | Filling the page with spec tables and no text |
| Product Schema | name, sku, brand, offers | All fields complete | Price doesn’t match the page |
Example: selling an XSR300 pressure washer. Title: “XSR300 3000PSI Commercial Pressure Washer — Brand Name”. H1: “XSR300 Commercial Pressure Washer”. Three body paragraphs: specs, two use cases (farm and job site), CE and IP55 certifications. Put the specs in a table, not a paragraph. This also helps E-E-A-T signals.
Counterintuitive: longer product page copy isn’t better. We’ve seen sites stuff 2,000 words of marketing copy into a product page and drop past position 15 — the long text dilutes the focus on the model number, and Google can’t tell whether the page is about the product or the industry. 300 to 600 words plus a spec table is the sweet spot for a B2B product page.
3. Category pages: where target keywords end and filter parameters begin
Category pages are the most underrated layer of a standalone site. Their job isn’t to teach — it’s to route visitors to the right product pages. Write 200 to 300 words covering what the category includes, what it excludes, and which use cases it suits, then show the product list right away.
| How to do it | When to keep it indexed | When to noindex |
|---|---|---|
| Top-level category page | Keep, write a 200-word intro | — |
| Second-level category page | Keep, write a 150-word intro | — |
| Single-facet filter URL (color=red) | Keep if it has its own search volume | Noindex if it has no search volume |
| Multi-facet combination URL | — | Always noindex to avoid a thin-page explosion |
| Sort/pagination parameters | — | Canonical points back to page one |
Example: a client’s “commercial pressure washers” category page has 220 words of copy explaining that the category covers industrial models above 2000PSI and excludes home models, followed by 12 product cards. When a visitor filters by “pressure=3000,brand=X”, the URL carries two parameters — set that URL to noindex and point canonical back to the category page itself. For how to design the filtering experience, see the search experience for product catalogs.
If you let every filter parameter get indexed, a site with 50 products and 6 filter dimensions will automatically generate tens of thousands of thin pages with different parameters but nearly identical content. That eats up your crawl budget and keeps your core pages from ranking. This is the biggest trap with category pages.
4. Blog pages: how to pick long-tail keywords and how many internal links to add
Blog pages don’t chase conversion keywords — they chase the question keywords buyers use during research. Mine topics from FAQs and People Also Ask and Competitor content gaps two sources, and give each question its own post with the full question as the H1.
| Blog page type | H1 format | Number of internal links | Link target |
|---|---|---|---|
| How-to tutorial | How to + action | 2 to 3 | Related product pages, category pages |
| Comparison | A vs B | 2 to 4 | Two product pages + category page |
| Definition | What is + term | 1 to 2 | Category page |
| Buying guide | How to choose + category | 3 to 5 | Category page + 2 to 3 product pages |
Use the target page’s keyword as the internal link anchor text, not “click here” or a URL. In a 1,500-word buying guide, place 3 internal links: one to the category page using a category term, and one to each of two product pages using their own model terms. For how to build out your internal linking system, see internal linking system.
A counterintuitive point: more internal links on a blog page is not better. If a 1,500-word article has more than 5, Google reads it as a link farm and the anchor text weight gets diluted. 2 to 4 is the healthy range, roughly one link every 400 words.
5. Keyword cannibalization: what to do when three pages compete for one term
After three months of publishing, cannibalization is bound to show up: the same term is targeted by a blog post, a category page, and a product page at once, and in Search Console all three pages hover between positions 15 and 40. For the logic behind handling it, see keyword cannibalization, and here is an actionable decision table.
| Situation | Judgment criteria | Action |
|---|---|---|
| All three pages rank in the top 30 | Clicks concentrate on one page | Redirect the weak pages, add internal links to the main page |
| All three pages rank below 30 | None of the pages has traction | Merge into one page, 301 the rest |
| Product page in the top 5, blog at 20 | Google reads the intent as transactional | Shift the blog to long-tail terms, keep the product page as is |
| Blog in the top 5, product page at 20 | Google reads the intent as informational | Switch the product page to model terms, stop competing |
Example: for a client site, the term “hydraulic hose” is being fought over by the category page, a product page, and the blog post “Hydraulic Hose Buying Guide.” Checking Search Console shows the blog gets 70% of the clicks, meaning Google reads this query as informational. So change the H1 on the product page and category page back to specific models, keep the blog positioned as a buying guide, and add 2 internal links from the blog to the category page. For whether to refresh old articles, see Refreshing Old Articles.
A word on choosing keyword tools. SEMrush and Ahrefs give you text search volume, which is enough for long-tail blog coverage but falls short for voice queries. In practice, use Ahrefs to mine the main terms for product and category pages, export queries from Google Search Console, and use AnswerThePublic to fill in PAA phrasings. Merge the three sources and dedupe, pick only one main term per page, and cover the rest as H2 subheadings.
One test: if a product page title contains two completely unrelated terms, like “hydraulic hose price manufacturer wholesale,” that is keyword stuffing. The right approach is to keep only one model term on the product page and move the price and wholesale intents to a category page or landing page. B2B buyers searching a model number just want specs, and only when they search “manufacturer wholesale” are they looking for a supplier. Mix them on one page and you get neither.
Don’t make big changes in the first month after launch. Check GSC every two weeks and see which keywords are hovering between positions 8 and 15 — a small internal link push could move those into the top 10. Don’t rush to change Title and H1 right away; Google needs 4 to 8 weeks to give a new page a stable ranking. Watch first, then fine-tune.
FAQ
How long should the body copy on a product page be?
Is shorter body copy on category pages really better?
How many internal links should a blog post have?
Should filtered parameter URLs be indexed by Google?
What if three pages are competing for the same keyword?
Can a product page and a blog post use the same H1?
Final thoughts
The core of content SEO for a DTC site isn’t writing more pages — it’s making each page answer only one search intent. Product pages shouldn’t compete for blog keywords, blog posts shouldn’t compete for product pages’ conversion keywords, and category pages shouldn’t read like industry white papers. Give each of the three page types its own job and build internal links from the bottom up, so authority flows down the funnel toward conversion.
Three steps to get there: this week, run a full-site audit and sort every page into one of three buckets — informational, navigational, or transactional. Next week, noindex every filtered-parameter URL and trim category-page copy to under 300 words. In week three, check Search Console for three pages competing for the same keyword, then merge or reword them using the decision table.
One line worth remembering: one page targets one keyword, one intent maps to one page type. No competing, no stuffing — that’s how rankings hold steady.
