Citation-friendly pages
WEAKOnly 2 of 51 fetched URLs match a best-of, top-N, comparison or review pattern: a Christmas cushion-ideas post and a top-5 Sunbrella post. No fabric or foam comparison pages exist at all.
Your site ranks for 9,215 searches today. Here's where to push next, and the 71k+ more searches you could be capturing.
You rank in the top 100 for 9,215 keywords, and 185 of the top 500 head terms are on page 1, but 156 more of those head terms sit on page 2 and 40 keywords are parked between positions 4 and 15: "cushion" at 12 (49,500/mo), "outdoor furniture cushions" at 12 (27,100/mo), "replacement cushion for outdoor furniture" at 11 (12,100/mo).
ZIPCushions sells made-to-measure cushions direct to consumers: buyers pick size, shape, fabric and foam for patio sets, benches, window seats, boats and daybeds. The audience is homeowners with outdoor furniture, designers speccing replacements, and boat and RV owners who can't buy anything off the shelf.
The commerce side is doing real work. Our fetch covered 51 pages, all 51 carry schema, all 51 have an H1, and the homepage runs 3,273 words with 340 internal links.
Discovery isn't the problem. Position is.
Six months of data show the site flat, -2.6% over the window.
So the play is not more blog posts. It's rebuilding the two or three collection pages those terms already land on (/collections/outdoor-cushions alone holds six of the 33,100/mo patio-chair variants between positions 18 and 49) into pages that deserve position 5 instead of position 20.
8 structural issues. 1 sitemap bloat flag.
Technically the site is in good shape. Across the 51 pages fetched, there were zero noindex tags, zero missing or cross-domain canonicals, zero duplicate titles and zero duplicate meta descriptions. Image alt coverage is 87%, schema is present on every sampled page, and 2,005 of 2,007 sitemap entries carry a lastmod with the newest dated today. Nothing here is broken in the way that usually explains lost rankings.
The problem is proportion. Of 2,007 sitemap URLs, 1,741 sit under /products/ and return 298 ranked keywords, while 87 collection pages return 191. The collections are 13 times more productive per page and they are the pages holding the valuable positions: /collections/outdoor-cushions alone carries four replacement-cushion queries at 12,100 searches a month each, all stuck at position 11 or 12. Meanwhile 121 blog posts produce 5 ranked keywords and 56 /pages/ URLs produce 4. Roughly 96% of the sitemap is pages Google has looked at and declined to rank. Organic footprint is real (9,215 ranked keywords, 185 of the top 500 head terms on page one), so the domain has earned trust. It is spending that trust across a page inventory an order of magnitude larger than the number of pages that deserve it.
The /products/ directory holds 1,741 of the 2,007 sitemap URLs (87% of the site) and earns 298 ranked keywords between them. That is roughly one keyword for every six pages. Shopify variant sprawl produces this shape: near-identical made-to-measure cushion pages differing only by shape or edge type, each with the same order form and near-identical copy. Google evaluates site quality partly at the domain level, and a crawl budget spent on 1,700 templated pages that earn nothing suppresses the pages that do earn. The contrast is the tell: /collections/ has 87 pages carrying 191 ranked keywords (2.2 per page), a 13x better rate than /products/.
1. Pull the non-indexed and zero-impression URL list under /products/ from Search Console and treat it as the working set.
2. For each product page with zero impressions in 90 days, decide one of three outcomes: 301 to the parent collection, canonicalize to the parent product where it is a size or shape variant, or 410 if it is a dead SKU.
3. Remove every URL you noindex or redirect from the sitemap in the same deploy so the sitemap stops asserting they matter.
4. Keep and invest in the roughly 100 to 200 product pages that hold real ranked keywords, adding unique measuring instructions, foam density specs and fabric options per page.
5. Re-submit the sitemap and track indexed-page count monthly until it stabilizes near the number of pages you actually want ranked.
The /blogs/ tree has 121 pages and 5 ranked keywords across all of them. Sampled posts explain why. Titles include "Cushion Trends to look out for in 2022", "Simple ways to bring the outdoors inside" and "How Today's Society Is Moving Towards Customizing Own Products". These are inspiration and brand-voice pieces with no keyword behind them, several dated to a year that has passed. None of the sampled 15 posts targets a measuring query, a foam density comparison, or an outdoor fabric question, which is what a person about to order made-to-measure cushions actually searches. Google ranks pages against a query; content written against a mood ranks against nothing.
1. Audit all 121 posts against Search Console impressions and split them into three buckets: ranking, zero-impression but on-topic, and off-topic.
2. Consolidate the zero-impression on-topic posts into a smaller set of definitive guides (one measuring guide per furniture type, one foam guide, one outdoor fabric guide), 301ing the merged URLs into the survivor.
3. Delete or 410 dated and off-topic posts such as the 2022 trends piece and the society-customization essay.
4. Give every surviving guide a single named target query and one contextual link to the matching collection page.
5. Cap the template's internal link count so a blog post is not shipping 145 links.
Forty keywords rank just off page one, and the head of that list is unusually valuable. "cushions" sits at position 4 on 49,500 monthly searches. "outdoor furniture cushions" is at 12 on 27,100. Four separate replacement-cushion phrases at 12,100 each ("replacement cushion for outdoor furniture", "replacement cushions for lawn furniture", "outdoor couch cushion replacement", "outdoor couch cushions replacement") all sit at 11 or 12 and all point at the same URL, /collections/outdoor-cushions. One page is carrying the entire replacement-cushion cluster and stalling at the bottom of page one on every variant.
1. Treat /collections/outdoor-cushions as a priority page: expand it with replacement-specific copy, a measuring section, and FAQ markup answering the four replacement variants directly.
2. Add contextual internal links to it from the homepage body and from the surviving blog guides, using varied anchors drawn from the four replacement phrases.
3. Check whether /products/rectangle-square-seat-cushion (position 12 for "cushion") and /collections/custom-cushions (position 12 for "cushion cushions") are competing for the same intent, and pick one canonical target for the head term.
4. Rebuild the striking-distance list monthly and work it top-down by volume rather than starting new pages.
The /pages/ tree holds 56 URLs and 4 ranked keywords. On Shopify this directory is where policies, about pages, FAQ stubs and orphaned landing pages accumulate. Fifty-six of them is well past what a single-product-category store needs, and they sit in the sitemap asserting equal importance to the collection pages that actually rank. Combined with the 1,741 product URLs and 121 blog posts, 96% of the sitemap is pages Google has decided not to rank. That ratio is itself a quality signal.
1. List all 56 /pages/ URLs and label each: legal, informational-and-useful, or orphan.
2. Remove legal and utility pages (policies, shipping, returns) from the sitemap; they should stay live and indexable but do not belong in a priority feed.
3. Merge any duplicate FAQ or help pages into one canonical help page and 301 the rest.
4. Delete or 410 orphans with no inbound internal links and no impressions.
5. Confirm the surviving informational pages each link to the relevant collection page.
Several sampled descriptions run far past what Google renders, and they cut off mid-word. The reuse-old-cushions post carries a 320-character description, the customizing-products post 308, the timeless-patterns post 289. Each visibly ends mid-sentence in the source. Google truncates around 155 to 160 characters, so the searcher sees an unfinished sentence where a reason to click should be. On the other end, /blogs/press-room-1 has a 10-character title ("Press Room") and no meta description at all, and it shares an H1 ("BLOGS") with /blogs/journal. These are not ranking factors on their own, they are click-through losses on pages that already have visibility.
1. Export every meta description over 160 characters and rewrite each to 150 to 158 characters ending in a complete sentence.
2. Rewrite the /blogs/press-room-1 title to a descriptive 50 to 60 character version and give it a unique description.
3. Fix the H1 on both blog index pages so each states its own topic rather than the generic "BLOGS".
4. Add a template-level character guard in the theme so future descriptions cannot exceed 160.
The three closest organic competitors are Wayfair (52,289 referring domains), Home Depot (151,170) and Target (203,745). They overlap on 6,829, 6,157 and 5,757 keywords respectively. Broad terms like "cushion" and "chair pads outdoor" are contested by mega-retailers with millions of backlinks, and "chair pads outdoor" at position 20 on 33,100 searches is already showing the ceiling: high volume, position 20, an estimated 195 in traffic value. That is a query where the SERP is retail shelf space, not made-to-measure.
1. Stop investing in broad shelf terms like "cushion" and "chair pads outdoor" where the top ten is national retail.
2. Reallocate that effort to modifier queries the retailers cannot serve: custom, made-to-measure, replacement, by-dimension and by-furniture-type.
3. Build one page per furniture type in the brief (patio set, bench, window seat, boat, daybed) targeting the replacement and custom modifiers rather than the bare noun.
4. Measure success on the 40 striking-distance keywords, not on head-term position.
Made-to-measure cushions have one universal purchase blocker: the buyer does not know how to measure, which foam density to pick, or which outdoor fabric survives their climate. Across 121 blog posts and 15 sampled titles, none of them answers those questions. The published set covers styling, spring trends, DIY makeovers and reuse ideas. The keyword pipeline independently surfaced "cushion foam" and "bench cushion" as top pillars, confirming the demand exists and the site is not serving it.
1. Publish one measuring guide per furniture type named in the brief: patio set, bench, window seat, boat and daybed.
2. Publish a foam guide covering density, thickness and indoor versus outdoor fill, targeting the "cushion foam" pillar.
3. Publish an outdoor fabric comparison covering fade, mildew and water resistance.
4. Give each guide one contextual link into the matching order page and a printable measuring diagram.
5. Add FAQ schema on each so the measuring questions can surface directly in the SERP.
The sitemap contains a single /agents.md/ entry with 0 ranked keywords. This is a machine-readable instruction file for automated crawlers, not a page for search users, and it does not belong in a sitemap that tells Google which URLs deserve indexing. It is trivial in isolation. It matters as a symptom: the sitemap is being generated without a filter, which is the same reason 1,741 product URLs and 56 utility pages are in there unranked.
1. Remove the /agents.md/ entry from the sitemap.
2. Add an exclusion rule to the sitemap generator covering non-HTML and machine-readable files.
3. Review the full sitemap output once after the exclusion lands to confirm nothing else non-indexable is being submitted.
3 pages analysed for AI-writing patterns.
Scored 55/100 across 3 pages. The writing has some shape but several tells per page (17 flagged) suggest AI assistance without an editor's pass. Cleanup is straightforward, not a rewrite.
“Custom-made products are becoming the norm because everyone needs different products depending on the situation.”
"custom-made products" plus "the norm" is restated three times across the piece where a pronoun or synonym would do.
“Because of different dynamics, changing needs, and the impact of social media, society is quickly moving towards a world”
Rule-of-three list feeding a summary restatement of the thesis: classic generated closer shape.
“One final reason that society is moving towards having custom-made products as the norm is due to the effect of social media.”
Enumerated "one final reason" paragraph opener is template scaffolding rather than written transition.
“What’s more, the COVID-19 pandemic has also completely changed what it looks like to have people over.”
"What's more" opener adds no information; a human editor cuts it.
“the sky is the limit when it comes to home decorating!”
Dead cliche closer with exclamation, the filler ending generators default to.
“Our Cushion Covers are not just easy to clean. They are also easy to maintain.”
Classic 'not just X, also Y' parallel scaffolding used to pad a paragraph that then repeats the same washing claim.
“Our products are made to withstand whatever you put them through. Our products are made from water-resistant fabrics that can be easily cleaned and dried.”
'Our products are made' repeated back-to-back where a human editor would have used a pronoun or merged the sentences.
“transform an ordinary space into an extraordinary space”
Stock LLM/marketing formulation with no concrete detail behind it.
“Last but not the least”
Filler section header that adds no information and just signals the end of a generated list.
“They are the most beautiful, high-performance fabric in the world.”
Unqualified superlative claim of the type generators produce when filling a benefits section.
“They can be easily washed in regular washing machines, and the stain-resistant fabric makes them free from stains.”
The washability and stain-resistance claims are restated three times across the Cleanability section with no new information.
“The development of lumps in different parts of your supportive cushion is a clear indication that it is wearing out. These lumps in different parts of your cushion will cause discomfort.”
"cushion" and "different parts of" repeat inside two adjacent sentences where a human would use a pronoun.
“it is a clear indication that you need to change it as soon as possible”
"a clear indication" is used in five separate sections as the same closing formula for every heading.
“It will also start creating discomfort instead of its usual body comfort instead.”
Duplicated "instead" and empty restatement of the prior sentence: generated filler, not edited prose.
“Go over to ZIPCushions today to peruse the cushion option that will replace your old cushions today.”
"today" twice and "cushion" three times in one closing sentence.
“most experts recommend changing your cushion every one to two years”
Unattributed "most experts recommend" is stock LLM authority-hedging with no source.
“Changing your cushion is important for its several additional benefits.”
Vacuous benefit claim with no specific content, a typical generated opener.
100% of sampled rankings come from searches that don't contain the brand name. That's traffic SEO earned, not reputation.
Already ranking close to page 1. These move first: a sharper title, a content refresh, a few internal links.
SERP FEATURES · 222 keywords show People Also Ask · 80 show AI Overviews
Rough equivalent ad spend based on current click prices. Directional, not an invoice.
Two or more of your own pages rank for the same term, splitting Google’s confidence. Pick one page per term; consolidate or de-optimize the rest.
Keywords where a competitor's specific page outranks yours, sorted by what the gap is worth. Each row is one page to build or upgrade.
NO PAGE = you have nothing ranking for that keyword at all
Over 65 characters. Google truncates titles past ~60-65 chars.
Under 30 characters. Likely missing keyword context.
Google synthesizes one from the body. Usually worse for CTR than a written meta.
Under 120 characters. Wasting SERP real estate.
Based on the 51 pages that returned HTTP 200 out of 51 fetched. Not a full-site crawl.
Click depth and inlink counts are computed over the 51 pages we fetched, not a full crawl. Pages outside the sample are not represented in the graph.
Compared the first 51 sitemap URLs against the top-500 ranked-keyword URL set.
Classic rankings and AI citations are now separate games. This checks whether the site has pages and entity signals worth retrieving.
ZIPCushions already shows up in 100 AI Overview results, so retrieval is happening. What's thin is the format AI answers prefer to cite. Only 2 of 51 fetched pages match a best-of, comparison or review shape, and there's no fabric-versus-fabric or foam-versus-foam page for an answer engine to lift a recommendation from. The homepage states category and product clearly but carries no proof a model can quote. An llms.txt manifest is in place; no Wikipedia entity exists for the brand.
Only 2 of 51 fetched URLs match a best-of, top-N, comparison or review pattern: a Christmas cushion-ideas post and a top-5 Sunbrella post. No fabric or foam comparison pages exist at all.
Title, H1 and meta all state custom made cushions for indoor and outdoor spaces, so category and product read clearly. Audience (homeowners, designers, boat and RV owners) and proof points are absent.
Schema covers 51/51 pages, but the posts run on decor language rather than quotable specs. No foam density, fade rating, lead time or size-range tables for a model to extract.
No video, social profile or directory signal appears in the data, and no Wikipedia entity was found. An llms.txt manifest is present, which is one of the few positive off-page signals here.
zipcushions.com appears in 100 AI Overview results, level with wayfair.com, homedepot.com and target.com at 100 each. 10 competitor-only AIO gaps were found.
No evidence of AI-answer monitoring. Cited sources shuffle week to week, so a fixed weekly or monthly check on your 20 highest-value terms is the baseline.
Sunbrella vs standard outdoor fabric, memory foam vs high-density vs closed-cell, deep-seat vs standard sizing. "patio cushion covers sunbrella" (1,600/mo) and "seating cushion foam" (2,900/mo) are both KD 0 and both read as comparison intent. Pages like these get pulled into AI answers far more often than seasonal decor posts.
Foam density, ILD, fabric fade ratings, standard size ranges, lead time, whether covers are zippered. A short spec table per cushion type gives models something extractable, and it answers the questions your order form already asks buyers.
The homepage says what you sell but not who for or why you. Naming homeowners, designers, and boat and RV owners, plus a concrete proof line (years operating, cushions shipped, fabrics stocked), gives AI systems the entity facts they cite when describing a brand.
Highest-leverage first. Keywords with a ready article on top.
Own three things: replacement fit, foam specs, and non-standard seating. Replacement is where you're closest to winning, with six keywords at positions 11-13 on 12,100/mo terms plus unranked pickups like "outdoor patio replacement cushions" and two Hampton Bay variants at 2,400/mo each. Foam holds the biggest single prize in the set ("chair cushion memory foam" 9,900/mo, "replacing couch cushion foam" 5,400/mo) and it's a topic the big-box competitors structurally can't cover, because they sell finished goods rather than specs. Non-standard seating (window seats, benches, RV dinettes, boats, pontoons, porch swings) accounts for 14 of the 30 opportunities and is where made-to-measure is the only real answer. Every one of those pages should end at an order page for that shape, not another blog post.
One keyword in, one published article out, every day. We'll ship against the 30-keyword list above.
REAL DATA ABOVE · 7 QUICK WINS, 12 ARTICLE IDEAS, 30 KEYWORDS FOR ZIPCUSHIONS