An evidence-based SEO and GEO audit of follio.com.au, the competitive set, and the plan to convert an existing content engine into search and AI visibility.
Written to be read on its own in three minutes. Every number below traces to a dated file in the audit data directory.
<head> is parsed as <body><head> on every page of the siteAn <img> pixel and two scripts belonging to outercite.com (the "citetrace" AI-citation tracker) are injected between <html> and <head>. Under the HTML parsing specification, an image before <head> forces the parser to open <body>. Everything after it, including the real <head>, is parsed inside the body.
<title>, rel="canonical", meta description and all JSON-LD structured data resolve to BODY, not HEAD, on 125 of 125 pages. Screaming Frog independently reports "Canonicals: Outside <head>", "Page Titles: Outside <head>" and "Directives: Outside <head>" on 100% of the pages it could reach, and reports canonicals as missing.Google ignores canonical tags, robots directives and meta descriptions placed outside <head>. Follio's are present in source and inert in practice. Of the eight domains benchmarked, Follio is the only one with this defect.
The irony is worth stating: the tool installed to measure AI citations is the single thing most damaging the site's machine-readability.
<head>, or to the footer. One template change. Hours of work, not weeks.Of 125 URLs in the sitemap, 90 have zero internal inbound links. Screaming Frog, crawling from the homepage the way a search engine does, discovered 31 HTML pages.
104 long-form episodes on YouTube totalling 44.6 hours. Speech rate was measured, not assumed: auto-captions for a 10-episode sample spanning the catalogue, 287.5 minutes and 60,517 words analysed, pooled rate 210.5 words per minute.
PodcastEpisode and VideoObject schema, and move the podcast onto a host that links back.390 estimated monthly organic sessions. 57 ranking keywords. All three position-one keywords are branded. 14 referring domains, three of which are an active PBN spam cluster that first appeared on 1 August 2026.
AI crawlers are not blocked. Twenty user agents tested against two URLs. GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended, Applebot, CCBot and the rest all receive byte-identical 200 responses (148,181 bytes) to what a browser receives. Cloudflare's default AI blocking is not active. Only Bytespider (ByteDance) is refused.
JavaScript rendering is not a problem. Twenty pages tested raw versus fully rendered: 2.73% of words and 0.00% of links are JavaScript-only. Elementor is server-rendering. Non-rendering AI crawlers see what Googlebot sees.
And the positioning already works in AI. Across nine ChatGPT prompts, Follio was recommended once: for "property portfolio builders Australia", named second after Liviti and ahead of Propertyology. InvestorKit scored zero. Australian Property Scout scored zero. Follio surfaces on the specific language it owns, from a site with 14 referring domains and a broken head.
Every figure in this report exists as a dated file in the audit data directory. Where a check failed, it is recorded in errors.log and disclosed here rather than omitted.
| Tool | Used for | Pulled | Output file |
|---|---|---|---|
| Custom raw crawler (no JS) | All 125 sitemap URLs: schema, titles, meta, headings, links, images, word counts | 6 Aug 2026 00:49Z | crawl-raw.json |
| Screaming Frog SEO Spider 24.3 | Independent link-following crawl, 260 URLs, issue classification | 6 Aug 2026 00:58Z | sf-exports/ |
Chrome headless (--dump-dom) | JS-rendered versus raw HTML delta, 20 pages | 6 Aug 2026 01:12Z | render-diff.csv |
| Python HTML parser | Proving where <head> elements actually parse | 6 Aug 2026 01:00Z | head-parse-defect.json |
| curl, 20 crawler user agents | AI crawler access matrix | 6 Aug 2026 00:44Z | crawler-access-matrix.csv |
| DataForSEO Labs | Traffic, ranking keywords, position buckets, all 8 domains | 6 Aug 2026 00:49 to 01:09Z | competitor-traffic.json |
| DataForSEO Backlinks | Referring domains, anchors, spam clusters, all 8 domains | 6 Aug 2026 00:49 to 01:21Z | competitor-backlinks.json |
| SEMrush | Organic competitor identification | 6 Aug 2026 00:50Z | recorded in findings |
| ChatGPT with live web search | AI visibility, 9 prompts | 6 Aug 2026 00:53 to 01:18Z | ai-visibility-matrix.csv |
| Google PageSpeed Insights | Core Web Vitals, lab and CrUX field, 3 pages | 6 Aug 2026 01:26Z | pagespeed.json |
| yt-dlp | YouTube catalogue, durations, auto-captions | 6 Aug 2026 01:01 to 01:05Z | youtube-channel.json |
<head> elements parseetv is a model built from keyword position and volume. It is not Follio's analytics. It is used only for like-for-like comparison, with the same endpoint, market and date for all eight domains.AI visibility testing is a dated sample of nine prompts against one engine. Large language model responses are non-deterministic and personalised. The same prompt asked twice can return different brands. Nine prompts is enough to establish that Follio is absent from generic category and geographic recommendations, and enough to establish that it appears for one specific positioning phrase. It is not enough to rank anyone, and it should be re-run monthly rather than treated as a fixed score.
The AI prompt set was partly tool-derived. The testing tool generates its own commercial buyer prompts from the target's category and location. It accepted some supplied prompts and substituted others. The nine prompts recorded in ai-visibility-matrix.csv are the prompts actually run.
Two AI testing calls failed and are logged. A 15-prompt batch and a 3-prompt batch timed out at the MCP layer (60 second ceiling). Recorded in errors.log. The successful runs were rerun in smaller batches.
The first JavaScript rendering run failed and was rebuilt. Chrome headless writes the DOM and then does not exit, so the initial harness stalled on the first two URLs at a 150 second timeout. Recorded in errors.log. The harness was rewritten to read until </html> and terminate, and all 20 pages then completed. The results reported are from the successful run.
Agent-readiness scores come from two different rubrics. The Cloudflare isitagentready.com score of 21 was supplied by Follio as a screenshot and is reproduced as received. The PWD scan score of 40 was run directly. Both are reported rather than picking whichever suited the argument, and the reason they disagree is explained in the GEO section.
PageSpeed sampled 3 pages, not 10. Core Web Vitals proved not to be a material issue on the first three (homepage, a research report, a podcast page), so the sample was not extended. This is disclosed rather than presented as a full sweep.
Google Search Console and Google Analytics were not available. All traffic and ranking figures are third-party estimates. Connecting GSC is the single fastest way to replace estimates with measurement, and is item one in the measurement framework.
Google Business Profile presence could not be verified from outside the account. No local pack analysis is included rather than a guessed one.
FlaggedThe brief described the website as a placeholder with SEO effectively unstarted. That is not quite right, and the difference matters commercially.
The site already carries 64 podcast episode pages, 27 research report pages, 3 suburb data pages and 4 case studies, each with real written content averaging 450 to 500 words. Custom post types for research_reports, suburb_data, videos and case_studies already exist in WordPress.
The assets are built. They are orphaned, unstructured and invisible. That is a substantially cheaper problem to solve than an empty site, and it changes the sequencing: the first phase is repair and connect, not create.
DataForSEO Labs, Google Australia, pulled 6 August 2026. Identical endpoint and date for every domain in this report.
| Position band | Keywords | Share | Comment |
|---|---|---|---|
| 1 to 3 | 3 | 5.3% | All branded: follio, follio property, lachlan delahunty |
| 4 to 10 | 4 | 7.0% | Includes "folio" (3,600/mo), a spelling collision, not category intent |
| 11 to 20 | 1 | 1.8% | "perth property reports", position 11 |
| 21 to 50 | 33 | 57.9% | Effectively zero traffic |
| 51 to 100 | 16 | 28.1% | Effectively zero traffic |
| Total | 57 | 100% | Against 2,856 for the category leader |
This distinction matters more here than it would for most clients. A business with the number one property podcast in Australia and roughly 500,000 monthly views will generate substantial branded search. That branded search inflates every top-line SEO metric and hides the fact that the business has no category visibility at all.
| Keyword | Volume | Position | Classification |
|---|---|---|---|
| folio | 3,600 | 7 | Brand-name collision (unrelated word) |
| follio | 480 | 1 | Branded |
| lachlan delahunty | 320 | 1 | Branded (founder) |
| follio property | 90 | 1 | Branded |
| folio financial services | 50 | 9 | Brand-name collision |
| best suburbs to invest in perth 2025 | 50 | 5 | Non-branded, from a podcast page |
| perth suburb profiles | 50 | 9 | Non-branded, from a suburb data page |
14 referring domains, 39 backlinks, 21% nofollow, DataForSEO domain rank 74. First seen 31 July 2025, so the profile is roughly twelve months old.
| Type | Domains | Detail | Value |
|---|---|---|---|
| Podcast scraper directories | 6 | podtail.nl (15 links, all nofollow, all in nav), poddtoppen.se, radio.net, podchaser.com, apple.com, grep.fm | Passive listings. Almost all nofollow. |
| Australian industry and partner | 3 | pipa.asn.au, propertiesandpathways.com.au, walterwakefield.com.au | Genuine, and the only genuine links present |
| Syndication | 1 | trendinginrealestate.com | Low value |
| PBN and spam | 4 | 77thhub.asia (spam 20), bazerdaily.com, ggmap.us.com, hostprinter.com (all spam 60) | Actively harmful |
Three domains (bazerdaily.com, ggmap.us.com, hostprinter.com), all first seen 1 August 2026, all spam score 60, all carrying the anchor text:
High Quality Dofollow Backlinks DA 50 PA 40 Premium PBN Network
Service follio.com.au Rank First Page Google Fast SEO Link Building
Buy Backlinks Online Cheap
This is a link vendor's promotional footprint, not a targeted attack. The same vendor domains (hostprinter.com, bazerdaily.com) also appear in Australian Property Scout's profile in the same window, so the whole category is being sprayed.
Speed is not the problem here. Total Blocking Time is 0 ms on all three pages tested, Cumulative Layout Shift is at or near zero, and desktop performance scores 98 to 100.
| Page | Mobile perf | Mobile LCP | CLS | Desktop perf | Largest asset |
|---|---|---|---|---|---|
| Homepage | 87 | 3,901 ms | 0.027 | 100 | 377 KB PNG |
| Investment Report July 2026 | 84 | 4,052 ms | 0.000 | 98 | 509 KB PNG |
| Podcast episode (Van Onselen) | 93 | 2,702 ms | 0.000 | 98 | 230 KB PNG |
The only Core Web Vitals issue is mobile LCP exceeding the 2.5 second threshold on all three pages, and in every case the cause is a single oversized uncompressed PNG. Convert to WebP and size correctly.
125 URLs crawled, all returning 200. Cross-checked against an independent Screaming Frog crawl of 260 URLs.
<head> is parsed as <body> sitewideSource order on all 125 pages:
<!DOCTYPE html>
<html lang="en">
<script type="text/rocketlazyloadscript">
window.citetrace = window.citetrace || { q: [], event: ... };
</script>
<script ... data-rocket-src="...citetrace.js"></script>
<img src="https://app.outercite.com/api/v1/citetrace/p.gif?k=..." width="1" height="1" />
<head><meta http-equiv="Content-Type" ...
<title> BODY. rel="canonical" BODY. meta description BODY. All JSON-LD BODY. On 125 of 125 pages.<head> (preferred) or immediately before </body>. Verify with Screaming Frog that "Canonicals: Missing" drops to zero. Effort: 1 to 2 hours. This is the cheapest high-impact fix in the entire report.| Content type | URLs | Orphaned | Reachable |
|---|---|---|---|
| Research reports | 27 | 27 | 0 |
| Suburb data | 3 | 3 | 0 |
| Podcast episodes | 64 | ~48 | ~16 |
| Pages | 27 | 12 | 15 |
| Case studies | 4 | 0 | 4 |
| Total | 125 | 90 (72%) | 35 |
OrganizationWebSiteWebPageBreadcrumbListImageObjectSearchActionReadActionListItemEntryPoint
Plus ContactPage on 2 URLs and AboutPage on 1. Nothing was configured; this is what the plugin emits out of the box.
ArticleNewsArticlePodcastEpisodePodcastSeriesVideoObjectDatasetFAQPagePersonLocalBusinessServiceReviewAggregateRatingItemListSpeakableSpecification
PodcastEpisode and no VideoObject. 27 research reports carry no Article and no Dataset. Neither the founder nor the economist has Person schema anywhere on the site. By comparison Henderson runs FAQPage, Question, Answer, RealEstateAgent and GeoCoordinates; InvestorKit runs LocalBusiness, AggregateRating and SpeakableSpecification.Build the portfolio of tomorrow. (31 characters). Zero pages have a unique description. Screaming Frog: "Meta Description: Duplicate" 100%, "Below 70 Characters" 100%, "Multiple" 90.3%.| Issue | Count | Detail |
|---|---|---|
| Pages with multiple H1 | 47 | Screaming Frog: 51.6% of pages it reached |
| Pages with no H1 | 4 | Includes /the-follio-property-podcast-2/, the podcast landing page |
| Non-sequential H2 structure | 12 | Heading hierarchy skips levels |
| Images missing alt text | 842 of 994 | 84.7% |
| Images over 100 KB | 60 | Driving the mobile LCP failures |
| Malformed internal links | 5 | https://follio.com.auharry@follio.com.au and three similar, plus https:/follio.com.au |
| Internal 4xx URLs | 9 | Screaming Frog |
| Test and duplicate pages live and indexable | 5 | /testt/, /investment-report-2/, /value-add-strategy-2/, /portfolio-management-2/, /contact-us-copy-smsf/ |
Average HTML payload 110.5 KB per page. Average readable text 3.02% of that payload. Elementor's markup outweighs the content roughly 33 to 1.
This is not fatal (Googlebot and the major AI crawlers handle it) but it compounds with thin content. A 450-word podcast page inside 110 KB of markup is a weak signal. The fix is not to rebuild the site; it is to put considerably more content on each page, which the transcript programme does directly.
Reach: yes. Read: yes. Use: almost never, because the content is not in a format answer engines extract.
Twenty user agents, two URLs each, 6 August 2026. Full response matrix in crawler-access-matrix.csv.
| Crawler | Homepage | robots.txt | Bytes served | Verdict |
|---|---|---|---|---|
| Chrome (baseline) | 200 | 200 | 148,181 | Reference |
| GPTBot | 200 | 200 | 148,181 | Identical to browser |
| OAI-SearchBot | 200 | 200 | 148,181 | Identical |
| ChatGPT-User | 200 | 200 | 148,181 | Identical |
| ClaudeBot | 200 | 200 | 148,181 | Identical |
| Claude-User | 200 | 200 | 148,181 | Identical |
| Claude-SearchBot | 200 | 200 | 148,181 | Identical |
| anthropic-ai | 200 | 200 | 148,181 | Identical |
| PerplexityBot | 200 | 200 | 148,181 | Identical |
| Perplexity-User | 200 | 200 | 148,181 | Identical |
| Googlebot | 200 | 200 | 148,181 | Identical |
| Google-Extended | 200 | 200 | 148,181 | Identical |
| Bingbot | 200 | 200 | 148,181 | Identical |
| Applebot | 200 | 200 | 148,181 | Identical |
| Amazonbot | 200 | 200 | 148,181 | Identical |
| meta-externalagent | 200 | 200 | 148,181 | Identical |
| CCBot (Common Crawl) | 200 | 200 | 148,181 | Identical |
| DuckAssistBot | 200 | 200 | 148,181 | Identical |
| MistralAI-User | 200 | 200 | 148,181 | Identical |
| Bytespider (ByteDance) | 403 | 403 | 4,543 | Blocked by Cloudflare |
Follio sits behind Cloudflare in front of WP Engine, so this was the first thing checked. Every AI crawler receives a byte-identical response to a browser. There is no cloaking, no challenge page, no 403. The only refusal is Bytespider, which is ByteDance's crawler and of negligible value to an Australian buyers agency.
This is a genuinely good result and it removes what would otherwise have been the single fastest available fix. It is reported as a negative finding because it was tested and found clean, not because it was assumed.
Crawl-delay: 10 <- orphaned directive, no User-agent group above it # START YOAST BLOCK User-agent: * Disallow: /wp-content/uploads/*.pdf Sitemap: https://follio.com.au/sitemap_index.xml
Two problems. The Disallow blocks all PDFs in the media library from every crawler, including four PDFs linked from live pages: the April 2026 Investment Report, the Portfolio Builder case study, the First Time Investor case study and the B2B flyer. And the leading Crawl-delay: 10 sits above any User-agent group, so most parsers ignore it (Googlebot ignores Crawl-delay entirely).
There are no AI crawler directives at all: no allow, no disallow, no Google-Extended opt-out. The file is silent on the question.
llms.txt reference.All 27 research report pages exist as HTML and all 27 reference a HubSpot form. Median on-page length is 502 words, and that includes navigation and footer. The structure is: short summary, then a "Download The Investment Report" HubSpot CTA. The 14-page synopsis itself never reaches the page.
/research-reports/investment-report-july-2026/ the largest asset is a 509 KB PNG screenshot of the report. Every figure in it (Perth 24% annual growth, Brisbane 16%, Adelaide 12%, Sydney flat, Melbourne negative, headline inflation 4.0%, trimmed mean 3.6%, unemployment 4.4%) is inside an image. No search engine and no answer engine can read any of it.This is the core GEO failure. Answer engines cite text they can parse and attribute. Follio publishes numbers as pixels.
| Measure | Value | Source |
|---|---|---|
| Long-form episodes on YouTube | 104 | yt-dlp channel dump |
| YouTube Shorts | 367 | yt-dlp |
| Total long-form duration | 44.6 hours | yt-dlp (2,676 minutes) |
| Median episode length | 27.0 min | yt-dlp |
| Episode pages on follio.com.au | 64 | sitemap crawl |
| Episodes with no page at all | 40 | 104 minus 64 |
| Pages containing the word "transcript" | 0 | full-text crawl of all 64 |
| Measured speech rate | 210.5 wpm | 10-episode caption sample, 287.5 min, 60,517 words |
| Words currently on all 64 pages (incl. chrome) | 25,895 | crawl-raw.json |
| Words available from transcribing 104 episodes | 563,298 | 2,676 min x 210.5 wpm |
| Net new indexable words | ~537,000 | 21.8x the site's current written content |
The word rate was measured rather than assumed. Auto-captions were pulled for ten episodes spread across the catalogue, rolling-caption duplicates removed, giving a pooled 210.5 wpm (mean 209.4, median 209.7, range 189.9 to 218.8). Sample data in podcast-transcript-sample.json.
| Format | Pages (of 125) | Why it matters |
|---|---|---|
HTML <table> | 1 | Comparison and data tables are the highest-extraction format for answer engines |
Ordered list <ol> | 1 | Step and ranking content |
| FAQ block | 3 mentions, 0 schema | Direct question-answer pairs |
| Attributed statistic block | 0 | A number plus its source is what gets cited |
| Definition block | 0 | "What is X" answers |
| Author byline with credentials | 0 | Establishes the economist as a citable entity |
A firm that publishes weekly statistics across eight capital cities has one table on its entire website.
Organization schema is present but there is no Person schema for anyone, no sameAs author links, no credentialed byline on any research report, and no author archive. The in-house economist who produces the national dataset is not established as an entity anywhere on the site.
Outbound citations are limited to instagram.com, linkedin.com, pipa.asn.au, youtube.com and podcast platforms. There is not one outbound link to a data source (ABS, Cotality, SQM Research, RBA). Answer engines weigh source attribution heavily, and a data publisher that cites nothing reads as an opinion site.
/llms.txt, /llms-full.txt and /ai.txt all return 404 on follio.com.au. They also return 404 on all seven competitor domains tested.
llms.txt that points answer engines at the data hub, the methodology page, the expert bios and the sentiment index costs a day and puts Follio first in the category. Low certainty of impact, near-zero cost, and it signals intent to the people who matter.Follio supplied a Cloudflare isitagentready.com result during this engagement. It was re-run through PWD's own agent-readiness scan on 6 August 2026 so the finding is sourced, not taken on trust. The two use different rubrics and produce different numbers. They agree on every missing control.
| Scan | Score | Tier | Category detail |
|---|---|---|---|
| isitagentready.com (Cloudflare) | 21 / 100 | Level 1: Basic Web Presence | Discoverability 50 (2 of 4), Content 0 (0 of 1), Bot Access Control 50 (1 of 2), API/Auth/MCP/Skill Discovery 0 (0 of 7) |
| PWD agent-readiness scan | 40 / 100 | Findable | Discoverability 57, Content 40, Bot policy 36, Discovery 25 |
.well-known endpoint responds (/.well-known/oauth-authorization-server)llms.txt absent (weight 3)Content-Signal directive absent (weight 3)User-agent: * groups and names no AI bot (weight 3)Both scanners marked "semantic page basics" and "structured data present" as PASS. Both are HTTP-only probes: they pattern-match for a <title>, an <h1>, a meta description and a JSON-LD block appearing anywhere in the document. Neither parses the document to check where those elements actually resolve.
This audit's parser test shows all four resolve inside <body>, not <head>, on 125 of 125 pages (finding OS-01). Both agent-readiness scores are therefore flattering Follio on the most damaging technical defect on the site.
The scores are still worth tracking as a trend, and the missing controls they identify are all real and all on the roadmap. But an automated agent-readiness score is a starting point, not a diagnosis, and in this case a 21 and a 40 are both more generous than the site deserves.
Nine prompts, ChatGPT with live web search, 6 August 2026. A dated sample, not a ranking. Full matrix in ai-visibility-matrix.csv.
| Category | Prompts | Follio named | Prompts run |
|---|---|---|---|
| Category, unbranded, national | 3 | 0 | best buyers agency in Australia; property investment advice Australia; buyers agent for investment property Australia |
| Geographic (Perth) | 3 | 0 | best buyers agent in Perth; buyers agent near Perth WA; property investment advisor Perth |
| Commercial investigation | 3 | 1 | best property investment advisors in Australia; property portfolio builders Australia; investment property buyers agent Australia |
For "property portfolio builders Australia", ChatGPT named Follio second, after Liviti and ahead of Propertyology, Empower Wealth, Momentum Wealth and Positive Real Estate.
Follio has 14 referring domains, 390 estimated monthly sessions, no content schema and a broken <head>. InvestorKit, doing 50 to 60 deals a month with 271 referring domains, was named in zero of nine. Australian Property Scout, the closest podcast-led analogue, was named in zero of nine.
Across the nine prompts, the most frequently recommended brands were Auswide Buyers Agency (3 of 9), Performance Property (3), BuyersAgent.com.au (3), OpenCorp (2), Freedom Property Investors (2) and Empower Wealth (2). Of the three competitors named in the discovery call, only Henderson Advocacy appeared more than once.
This is the expected pattern. Founders name the competitors they see on social media and in deal negotiations. Answer engines surface whoever has the strongest text-based footprint across the web, which is a different population.
The recommendation surface across all nine prompts was dominated by aggregator and directory-style brands: BuyersAgent.com.au, Buyers Agents Australia, Buyers Agency Australia. Propertybuyer's own backlink profile shows toptenbuyersagents.au linking to it 17 times.
One engine (ChatGPT with live web search) and nine prompts. Large language model responses are non-deterministic and personalised: the same prompt asked twice can return a different set of brands. Two larger batch runs timed out at the tooling layer and are recorded in errors.log. The prompt set was partly generated by the testing tool rather than fixed in advance, and the nine prompts recorded are the prompts actually run. This section establishes presence and absence at a point in time. It should be re-run monthly with the same prompts to create a trend, and that is in the measurement framework.
Eight domains. Identical tools, identical market, identical date. Scoring rubric published below and applied without adjustment.
Seeds from the discovery call: Henderson Advocacy, Search Property, InvestorKit. Expanded using brands actually cited in the AI testing, plus the research-led and content-led players that own the data queries Follio should own: Metropole, Propertyology, Propertybuyer, Australian Property Scout.
Dashdot was pulled and then excluded. It ranks number one for "dashdot liquidation" (1,300 searches a month) on a /farewell/ page. The business appears to have ceased trading. Its data is retained in competitor-traffic.json for transparency and excluded from scoring.
| Domain | Est. sessions/mo | Keywords | Top 10 | Ref. domains | Sitemap URLs | AI SoV |
|---|---|---|---|---|---|---|
| propertybuyer.com.au | 60,831 | 2,856 | 457 | 369 | 3,260 | 33.3% |
| metropole.com.au | 9,056 | 1,112 | 125 | 743 | 353 | 11.1% |
| henderson.com.au | 3,789 | 377 | 45 | 293 | 1,103 | 22.2% |
| investorkit.com.au | 2,861 | 1,248 | 214 | 271 | 741 | 0% |
| searchproperty.com.au | 2,797 | 1,131 | 152 | 497 | 574 | 33.3% |
| australianpropertyscout.com.au | 1,389 | 30 | 13 | 95 | 60 | 0% |
| propertyology.com.au | 1,154 | 438 | 62 | 254 | 668 | 11.1% |
| follio.com.au | 390 | 57 | 7 | 14 | 125 | 11.1% |
| Criterion | Weight | Measurement |
|---|---|---|
| Estimated organic traffic | 20% | DataForSEO etv, log10 scaled |
| Non-branded top-10 visibility | 20% | Top-10 count x measured non-branded share of top-25 keywords, log10 scaled |
| AI visibility share of voice | 20% | Mentions across 9 ChatGPT prompts |
| Referring domain quality and count | 15% | DataForSEO referring domains, log10 scaled |
| Content depth | 15% | Indexable URL count from sitemaps, log10 scaled |
| Technical and schema health | 10% | 4 pts head parses correctly, 3 pts content schema beyond CMS defaults, 3 pts inverse spam score |
Four criteria are log10-scaled before min-max normalisation because the range spans three orders of magnitude (390 to 60,831 sessions). On a linear scale every domain except Propertybuyer would score zero and the matrix would carry no information. Non-branded share is a derived figure, not a measured one: it applies each domain's hand-classified non-branded proportion of its top-25 keywords to its measured top-10 count.
| Rank | Domain | Traffic 20% | Non-brand 20% | AI SoV 20% | Links 15% | Depth 15% | Tech 10% | Total |
|---|---|---|---|---|---|---|---|---|
| 1 | propertybuyer.com.au | 10.00 | 10.00 | 10.00 | 8.24 | 10.00 | 5.72 | 9.31 |
| 2 | searchproperty.com.au | 3.90 | 8.19 | 10.00 | 8.99 | 5.65 | 6.85 | 7.30 |
| 3 | metropole.com.au | 6.23 | 7.87 | 3.33 | 10.00 | 4.44 | 5.28 | 6.18 |
| 4 | henderson.com.au | 4.50 | 2.90 | 6.67 | 7.66 | 7.29 | 9.33 | 5.99 |
| 5 | investorkit.com.au | 3.95 | 8.72 | 0.00 | 7.46 | 6.29 | 9.47 | 5.54 |
| 6 | propertyology.com.au | 2.15 | 6.70 | 3.33 | 7.30 | 6.03 | 6.40 | 5.08 |
| 7 | australianpropertyscout.com.au | 2.52 | 0.00 | 0.00 | 4.82 | 0.00 | 5.80 | 1.81 |
| 8 | follio.com.au | 0.00 | 1.16 | 3.33 | 0.00 | 1.84 | 2.40 | 1.41 |
Propertybuyer's 60,831 monthly sessions are not buyers agency traffic. Its top keywords are suburb-name navigational queries: "kogarah 2217" (110,000/mo), "revesby 2212" (90,500/mo), "pymble 2073" (40,500/mo), served by a 3,260-URL suburb-profile page farm. That is real scale, and it is people looking up a postcode.
The matrix answers the question honestly: Propertybuyer is the biggest player in this category's search results. The more useful question is which competitor to copy for each specific capability, and the answers differ.
| Keyword | Volume | Position | URL |
|---|---|---|---|
| sydney housing market | 3,600 | 5 | /sydney-housing-market-update/ |
| melbourne property market | 4,400 | 8 | /melbourne-housing-market-update/ |
| brisbane property market brisbane | 2,400 | 8 | /brisbane-housing-market-update/ |
| sydney house prices | 4,400 | 17 | /sydney-housing-market-update/ (same URL) |
| melbourne house prices | 4,400 | 18 | /melbourne-housing-market-update/ (same URL) |
One permanent URL per city, updated in place, accruing authority for years. Metropole is not publishing a new report every month at a new address. It is updating the same page.
omny.fm: 566 backlinks, dofollowiheart.com: 137 backlinks, dofollowplayer.fm: 18snipd.com: 17/youtube landing URL: 223 backlinkssmartpropertyinvestment.com.au: 27, editorialbrokernews.com.au: 11, editorialpodtail.nl: 15 backlinks, all nofollow, all in navpoddtoppen.se: 2podchaser.com: 2apple.com: 1radio.net: 1, nofollowgrep.fm: 1, nofollow254 referring domains, and the cleanest editorial profile in the entire set:
| Referring domain | Backlinks | Type |
|---|---|---|
| realty.com.au | 339 | Australian property portal, editorial, in-article |
| yourinvestmentpropertymag.com.au | 131 | Trade press, editorial |
| smartpropertyinvestment.com.au | 95 | Trade press, editorial |
| bmtqs.com.au | 52 | 24 links carry rel="author" for Simon Pressley |
| apartments.com.au | 34 | Portal, editorial |
| eliteagent.com | 23 | Industry news |
| brokernews.com.au | 9 | Trade press |
The anchor text "Simon Pressley" appears on 54 backlinks. A named analyst, quoted repeatedly, generates links to the firm. Propertyology also ranks number one for "fastest growing cities australia" off a single named research asset at /30-fastest-growing-australian-cities/.
This is exactly the AFR commentator play Follio has planned. Propertyology has already proven it works in this market, with an economist who is less prolific than Follio's.
Copy: the richest structured data in the set (FAQPage, Question, Answer, RealEstateAgent, GeoCoordinates, OpeningHoursSpecification, PostalAddress, ContactPoint) and the /suburb-city/ location page structure that ranks for "buyers agent inner west" (260/mo, position 7).
Do not copy: the links. Exact-match anchors "buyers agent" (448 backlinks), "buyers agent Perth" (198) and "buyers agent Brisbane" (195) coming from unrelated US home-improvement and real-estate blogs: home-sol.com, tiffanycitylighting.com, dublinhomes247.com, browardconcreteservices.com. 2,990 of Henderson's 3,841 backlinks are already broken. This is a purchased profile with a short half-life.
The closest structural analogue to Follio: podcast-led, founder-fronted, national buyers agency. 30 ranking keywords in total, every one of them brand or founder terms ("australian property scout", "sam gordon", "scouting australia"). 60 URLs in the sitemap. Zero of nine AI prompts. Scored 1.81 against Follio's 1.41.
Australian Property Scout has been running its podcast longer than Follio and sits in essentially the same position. A podcast builds brand demand. It does not build category search visibility unless the content is published as text on a site that is structured to hold it.
69 keywords where a competitor ranks in the top 20 and Follio does not rank at all. Full list with volumes, positions and ranking URLs in keyword-universe.csv.
Monthly search volume, Google Australia, DataForSEO, 6 August 2026.
| Keyword | Volume | Who owns it now | Their position | Follio already produces this |
|---|---|---|---|---|
| melbourne property market | 4,400 | metropole.com.au | 8 | Yes, weekly |
| melbourne house prices | 4,400 | metropole.com.au | 18 | Yes, weekly |
| sydney house prices | 4,400 | metropole.com.au | 17 | Yes, weekly |
| sydney housing market | 3,600 | metropole.com.au | 5 | Yes, weekly |
| sydney property market | 3,600 | metropole.com.au | 10 | Yes, weekly |
| brisbane house prices | 2,900 | metropole.com.au | 15 | Yes, weekly |
| brisbane property market | 2,400 | metropole.com.au | 13 | Yes, weekly |
| australian housing market 2026 forecast | 1,900 | propertyology.com.au | 15 | Yes, Wednesday report |
| gold coast property market | 1,600 | investorkit.com.au | 14 | Partially |
| melbourne property prices | 1,300 | metropole.com.au | 16 | Yes, weekly |
| average rent in sydney | 720 | propertyology.com.au | 17 | Yes, rental yields weekly |
| darwin property market | 480 | propertyology.com.au | 11 | Yes, all 8 capitals |
| buying agent | 6,600 | investorkit.com.au | 8 | No, needs writing |
| real property investments | 3,600 | investorkit.com.au | 10 | No, needs writing |
| buyer agent sydney | 2,400 | searchproperty.com.au | 8 | No, needs a location page |
| rentvesting | 2,400 | investorkit.com.au | 5 | Yes, podcast episode exists |
| negative gearing meaning | 2,400 | investorkit.com.au | 20 | Yes, multiple episodes |
| negative gearing explained | 1,900 | investorkit.com.au | 19 | Yes, multiple episodes |
Note the pattern in the right-hand column. Most of the highest-volume gaps are not content Follio needs to create. They are content Follio has already created and has not published in a form a search engine can use.
| Domain | Links to | Route in |
|---|---|---|
| smartpropertyinvestment.com.au | InvestorKit, Propertyology, Aus Property Scout | Expert commentary, data contribution |
| yourinvestmentpropertymag.com.au | Metropole, Propertyology, Propertybuyer | Expert commentary, research citation |
| realty.com.au | Metropole, Propertyology, Propertybuyer | Research citation, in-article |
| brokernews.com.au | InvestorKit, Propertyology | Borrowing capacity and lending commentary |
| apartments.com.au | Propertyology, Propertybuyer | Market data citation |
| omny.fm | InvestorKit, Aus Property Scout | Move podcast hosting. Direct, no outreach needed. |
| snipd.com | InvestorKit, Aus Property Scout | Follows automatically from proper podcast hosting |
| player.fm, ivy.fm, podbean.com | InvestorKit, Aus Property Scout | Follows automatically from proper podcast hosting |
| iheart.com | InvestorKit | Podcast distribution |
| eliteagent.com | Propertyology | Industry news |
| toptenbuyersagents.au | Propertybuyer | Directory listing |
Four of these need no outreach at all. They are automatic consequences of hosting the podcast properly. That is the cheapest link acquisition available to this business.
Assumptions, stated so they can be argued with:
Against a current measured 390 estimated monthly sessions, that is a 5.3x increase in organic traffic, from content that is already being written and paid for.
Leads are deliberately not modelled. Follio's site conversion rate was not supplied and cannot be measured from outside. Any lead figure would be invented, and this engagement does not permit that. Once Google Analytics and HubSpot conversion data are available, this model can be extended in one afternoon.
Follio already produces more publishable material per week than any competitor in this set. The problem is entirely architectural.
Eight capital cities every Monday, plus supply, demand, migration and affordability every Wednesday, from a named in-house economist. Nobody else in this category has that cadence. It currently expires in three days because each report gets a new orphaned URL.
/property-market/ Hub. All cities, current headline figures, one table. /property-market/perth/ PERMANENT. Updated in place every Monday. /property-market/sydney/ Same. One URL per capital, forever. /property-market/melbourne/ (+ brisbane, adelaide, hobart, darwin, canberra) /property-market/perth/2026-08/ Dated archive snapshot, created on update. /property-market/archive/ Archive index, paginated. /research/ Research hub. /research/supply-and-demand/ Wednesday report, permanent URL. /research/methodology/ How the data is produced. Cited by everyone. /research/data/ Machine-readable downloads (CSV + JSON).
How the weekly update works without creating thin or duplicate pages. The city page is the canonical, permanent asset. Every Monday the economist's figures replace the current numbers in place, the dateModified updates, and a dated snapshot is written to the archive path. The archive snapshot carries a canonical pointing to itself (it is genuinely different content), is linked from the city page's "previous updates" module, and is excluded from the primary sitemap after 24 months. The city page keeps its accumulated authority. This is the Metropole model, applied to eight cities instead of three and updated weekly instead of monthly.
| Page type | Schema | Key properties |
|---|---|---|
| City market page | Dataset + Article + BreadcrumbList | temporalCoverage, spatialCoverage, variableMeasured (median price, rental yield, clearance rate, listing volume), dateModified, creator pointing to the economist's Person, distribution pointing to the CSV |
| Research hub | CollectionPage + ItemList | Ordered list of every city page and report |
| Methodology page | Article + Dataset | citation to ABS, Cotality, SQM, RBA. This is the page journalists check before quoting you. |
| Podcast episode | PodcastEpisode + VideoObject | transcript, partOfSeries, duration, datePublished, actor/guest as Person |
| Expert bio | Person | jobTitle, alumniOf, knowsAbout, sameAs to LinkedIn and published work |
| Service pages | Service + FAQPage | areaServed, provider, Question/Answer pairs |
| Organisation (sitewide) | Organization + LocalBusiness | sameAs, founder, employee, consistent NAP, AggregateRating once reviews are structured |
The data hub is the top of the funnel and it must feed the commercial pages, not sit beside them. Every city page carries: a contextual link to the relevant service page ("planning to buy in Perth? see portfolio builder"), links to the three most recent podcast episodes discussing that city, a link to the methodology page, and a link to the archive. The hub links to all eight cities. The homepage links to the hub. Result: every research asset within two clicks of the homepage, and every research asset passing equity to a commercial page. That single change resolves finding OS-02.
The trade currently being made is: a HubSpot form capture, versus every ranking, citation and link the research could earn. Three things make that trade indefensible now.
Recommended structure. Full report text public as HTML, with real tables and attributed figures. PropStack waitlist as a contextual inline CTA, not a gate. The PDF remains available as a formatted download for people who want it, and it is unblocked in robots.txt. An optional email capture offers the weekly update by email, positioned as a subscription rather than a toll.
What is being given up. Some volume of form fills from people who would have downloaded a PDF. What is being gained. 51,310 monthly searches of addressable data intent, a citable source for AI answer engines, and the earned-link surface that Propertyology has built its entire authority on.
| Component | Specification | Indexable words added |
|---|---|---|
| Full transcripts | Speaker-labelled, timestamped, paragraphed, on-page (not in a collapsed accordion that hides text from extraction) | ~537,000 |
| Chaptered summaries | H2 per chapter with a 2 to 3 sentence summary above the transcript, so the answer sits in the first 50 words of each section | ~31,000 (104 x ~300) |
| Extracted Q&A blocks | 3 to 5 real questions per episode with direct answers, marked up as FAQPage | ~52,000 |
| Guest bios | Person schema per guest, linked to an author archive | ~10,000 |
| 40 missing episode pages | 104 episodes exist, 64 have pages | included above |
Sequencing. Do not transcribe all 104 at once. Start with the 20 episodes whose topics map to the highest-volume gap keywords (negative gearing, rentvesting, capital gains tax, the 2026 budget changes, city market updates). Measure. Then run the rest.
Podcast hosting. Move to a host that provides a linking episode page (Omny, Buzzsprout, Transistor or similar). InvestorKit gets 566 dofollow backlinks from omny.fm alone. This requires no outreach, no content and no negotiation. It is a hosting decision.
Also fix: /the-follio-property-podcast-2/ has no H1 and sits on a URL with a -2 suffix, which means the original was never cleaned up.
The plan to respond to AFR property journalists on the podcast is sound, and Propertyology has already proven the model works in this market. But journalists cannot cite what they cannot verify, and right now there is nothing on the site for them to land on. Four things need to exist first.
/media/. Recent commentary, contact details for media enquiries, high-resolution headshots, and the one-paragraph company description you want quoted verbatim.
/about/team/[name]/ with Person schema, qualifications, areas of expertise, and sameAs links. The economist needs to be a named, verifiable entity. Right now they are anonymous.
/research/data/. Downloadable CSV and JSON of the weekly figures, with a clear citation line and a permissive reuse policy. Make it trivially easy to quote the numbers correctly.
/research/methodology/. Sources, definitions, update cadence, limitations. This is what a journalist and an answer engine both check before treating you as a source.
Then the podcast response mechanism works: an AFR article appears, Follio records a response episode within 48 hours, publishes it with a full transcript and the relevant data pulled from the hub, and pitches the economist as a named source for the follow-up. The transcript is the citable artefact. Without it, a podcast response is invisible to everyone except existing listeners.
Five questions asked monthly inside PropStack, aggregated into an index. The differentiator is real and defensible: this measures investors specifically, not general consumer confidence. No such index exists in Australia. Westpac-Melbourne Institute measures consumers. NAB measures business. Nobody measures property investors.
| Decision | Recommendation | Reason |
|---|---|---|
| Name | Follio Investor Sentiment Index (FISI) | Brand in the name so every citation is a branded mention. An acronym makes it quotable in copy. |
| URL | /research/investor-sentiment-index/ permanent, /research/investor-sentiment-index/2026-09/ per release | Same permanent-plus-archive pattern as the city pages |
| Cadence | Monthly, same business day each month, published to a schedule announced in advance | Journalists diarise predictable releases. Irregular ones get missed. |
| Methodology page | Separate, permanent, linked from every release | Non-negotiable for media citation and for AI source trust |
| Schema | Dataset with temporalCoverage, variableMeasured, distribution to CSV, creator as the economist's Person | Makes the index machine-readable, which is the whole point |
| Format | Headline number, direction of change, one table, one chart, three-sentence interpretation, downloadable CSV | Every element is separately extractable by an answer engine |
| Distribution | Media list on release day, LinkedIn post from the economist, podcast segment, email to the PropStack base | Recurring indices become citation habits once journalists know the date |
Sequencing note. The index needs a credible sample size before launch. Publishing an index built on a few hundred responses invites the first sceptical journalist to dismantle it. Build the PropStack base first, launch the index in month four to six, and state the sample size on every release.
Targeted at the specific domains that appeared as citation and link sources in this audit, not at a generic list.
| Surface | Action | Priority |
|---|---|---|
| Podcast hosts (omny.fm, player.fm, snipd, podbean) | Move hosting. Links follow automatically. | Do first |
| smartpropertyinvestment.com.au | Pitch the economist as a data source. Links to three competitors, not Follio. | High |
| yourinvestmentpropertymag.com.au, realty.com.au | Research citation pitch, monthly data release | High |
| brokernews.com.au | Borrowing capacity and lending commentary. Follio already has episodes on this. | High |
| Buyers agent directories, toptenbuyersagents.au, PIPA member directory | Listings. These are what AI answer engines read when asked "best buyers agent". | High |
| YouTube descriptions | Link every episode description to its on-site transcript page. 104 episodes, currently linking mostly to the homepage or nothing. | High |
| Reddit (r/AusFinance, r/AusProperty, r/fiaustralia) | Participate genuinely with data, do not promote. These subreddits are disproportionately cited by answer engines. | Medium |
| LinkedIn (economist and founder) | Publish the weekly figures as native LinkedIn articles linking to the city pages | Medium |
| Wikipedia | Do not attempt a company page. Contribute sourced data to existing Australian housing articles instead. | Low |
Every item traces to a numbered finding in this report. Effort is indicative developer or content days.
Nothing in this phase requires new content. All of it makes existing content work.
| Action | Finding | Effort | Impact | Owner | Depends on |
|---|---|---|---|---|---|
Move the outercite/citetrace pixel inside <head> | OS-01 | 0.25 d | Critical Restores canonical, robots, meta and all schema sitewide | Agency | None |
Remove Disallow: /wp-content/uploads/*.pdf and the orphaned Crawl-delay | GEO-01 | 0.25 d | High Unblocks 4 linked PDFs | Agency | None |
| Fix the mailto template bug (4 broken internal links) | OS-05 | 0.25 d | Medium | Agency | None |
| Delete or noindex the 5 test and duplicate pages | OS-05 | 0.25 d | Medium Cleans the indexable set | Agency | None |
| Build research, podcast and suburb hub pages with pagination; connect all 90 orphans | OS-02 | 4 d | Critical Makes 72% of the site reachable | Agency | None |
| Template meta descriptions per content type, hand-write the top 20 | OS-04 | 1.5 d | High | Agency | OS-01 fixed |
Deploy Article, PodcastEpisode, VideoObject, Person, Service, FAQPage, LocalBusiness schema at template level | OS-03 | 3 d | High | Agency | OS-01 fixed |
| Fix multiple and missing H1s across 51 pages | OS-05 | 1 d | Medium | Agency | None |
| Convert oversized PNGs to WebP, correct sizing on the top 30 pages | OS-05 | 1 d | Medium Resolves mobile LCP | Agency | None |
| Ungate all 27 research reports, publish full text as HTML tables | GEO-02 | 3 d | Critical Makes the data readable and citable | Follio + Agency | Founder sign-off |
| Move podcast hosting to a host that links back | Link gap | 0.5 d | High Automatic dofollow links, no outreach | Follio | None |
Publish llms.txt and llms-full.txt | GEO-06 | 0.5 d | Low Uncontested in the category | Agency | Hub pages exist |
| Connect Google Search Console and Analytics, set up rank tracking | Measurement | 0.5 d | High Replaces estimates with measurement | Follio | None |
| Action | Finding | Effort | Impact | Owner | Depends on |
|---|---|---|---|---|---|
Build /property-market/[city]/ for all 8 capitals with Dataset schema and the update-in-place workflow | Gap: 51,310/mo | 8 d | Critical The single largest opportunity in this report | Agency + economist | Phase 1 |
Build /research/methodology/ and /research/data/ (CSV and JSON) | GEO-05 | 2 d | High Prerequisite for media citation | Agency + economist | City pages |
| Build the archive pattern and dated snapshots | OS-02 | 2 d | Medium Prevents duplication as data updates | Agency | City pages |
| Transcribe and publish the first 20 podcast episodes with chaptered summaries and Q&A blocks | GEO-03 | 6 d | Critical ~103,000 indexable words | Agency | Schema deployed |
| Create the 40 missing episode pages | GEO-03 | 3 d | High | Agency | Podcast template |
Build expert bio pages with Person schema for the founder and economist | GEO-05 | 1.5 d | High Entity establishment | Follio + Agency | None |
Build /media/ newsroom with press kit and headshots | PR play | 2 d | High Prerequisite for the AFR strategy | Agency | Bios |
Rebuild commercial service pages with Service and FAQPage schema; add FAQ blocks | GEO-04 | 4 d | High Answer-engine formats | Agency | Phase 1 |
| Build city and state location landing pages for commercial intent | Gap: 11,420/mo | 4 d | Medium | Agency | Service pages |
| Update all 104 YouTube descriptions to link the on-site transcript page | Link gap | 1 d | Medium | Follio | Transcripts live |
| Action | Finding | Effort | Impact | Owner | Depends on |
|---|---|---|---|---|---|
| Launch the Follio Investor Sentiment Index with methodology page and CSV | IP play | 6 d | Critical Highest ceiling asset. Recurring citation magnet. | Follio + Agency | PropStack sample size |
| Transcribe the remaining 84 episodes | GEO-03 | 10 d | High Completes the ~537,000 words | Agency | Phase 2 measured |
| Journalist and trade press outreach: smartpropertyinvestment, yourinvestmentpropertymag, realty.com.au, brokernews, eliteagent | Link gap | Ongoing | High Each links to 2+ competitors, none to Follio | Agency + economist | Media page, methodology page |
| AFR response-episode mechanism: 48-hour turnaround, transcript, data pull, named-source pitch | PR play | Ongoing | High | Follio | Newsroom, transcripts |
| Directory and comparison-site placement | AI citation gap | 2 d | High Directories dominate AI recommendations | Agency | None |
| Build informational and definitional content for the investor-intent gap (34,940/mo) | Gap analysis | 10 d | Medium Largely repurposed from transcripts | Agency | Transcripts |
| Reddit and LinkedIn programme | Off-site | Ongoing | Medium | Follio | Data hub live |
| Backlink spam monitoring; disavow if the PBN cluster exceeds ~20 domains | Backlink profile | Monthly | Low | Agency | None |
dateModified refreshed, LinkedIn post from the economist./research/supply-and-demand/.The mistake with a programme like this is judging it on organic sessions in month two. Organic sessions are the last thing to move. Here is what to watch instead, and in what order it should move.
| Metric | Source | Frequency | Baseline (6 Aug 2026) | Expect movement |
|---|---|---|---|---|
| Leading indicators: weeks 1 to 8 | ||||
| Pages indexed | Search Console | Weekly | Not available (GSC not connected) | Weeks 2 to 4 |
| Pages crawled per day | Search Console crawl stats | Weekly | Not available | Weeks 1 to 3 |
| Pages with zero internal inlinks | Screaming Frog | Monthly | 90 of 125 | Week 4 |
Canonicals detected in <head> | Screaming Frog | On deploy | 0 of 125 | Week 1 |
| Pages with content schema | Screaming Frog | Monthly | 0 of 125 | Week 4 |
| Total indexable words on site | Crawl | Monthly | ~67,600 | Month 2 |
| Mid indicators: months 2 to 5 | ||||
| Total ranking keywords | DataForSEO | Monthly | 57 | Month 2 |
| Non-branded keywords in top 20 | DataForSEO | Monthly | 3 | Month 3 |
| Impressions (non-branded) | Search Console | Weekly | Not available | Month 2 |
| Average position, data-hub keywords | Rank tracking | Weekly | Not ranking | Month 3 |
| Referring domains | DataForSEO | Monthly | 14 | Month 2 (podcast hosting) |
| AI share of voice, same 9 prompts | ChatGPT re-test | Monthly | 11.1% (1 of 9) | Month 3 to 4 |
| Citations in AI answers with a URL | Manual log | Monthly | 0 | Month 4 |
| Lagging indicators: months 5 to 12 | ||||
| Organic sessions | Analytics | Monthly | 390 (estimated) | Month 5 |
| Organic sessions, non-branded | Search Console + Analytics | Monthly | Not available | Month 5 |
| Organic-attributed enquiries | HubSpot | Monthly | Not supplied | Month 6 |
| Earned media mentions | Manual log | Monthly | 0 tier-one | Month 4 |
Eight rows in the table above read "not available". Every traffic and ranking figure in this report is a third-party estimate, because Google Search Console and Google Analytics were not accessible during the audit. That is a fair basis for competitive comparison and a poor basis for measuring your own progress.
Connecting both takes under an hour and converts most of this framework from estimated to measured. It also backfills up to 16 months of history, which means the baseline can be set properly rather than from today.
Dataset schema and a public methodology page.Every figure in this report traces to one of these files. All pulled 6 August 2026 unless stated.
| File | Contents |
|---|---|
crawl-raw.json / .csv | Full raw-HTML crawl of all 125 sitemap URLs: schema, titles, meta, headings, internal and external links, images, word counts, HubSpot references, full text |
onsite-analysis.json / .txt | Derived onsite analysis: orphans, duplicates, schema coverage, content ratios, answer-format signals |
head-parse-defect.json | HTML parser output proving head elements resolve to body, on 125 of 125 pages |
render-diff.json / .csv | Raw versus Chrome-rendered word, link and schema counts for 20 pages |
crawler-access-matrix.csv / crawler-access-raw.txt | 20 user agents against 2 URLs: status codes, byte lengths, response bodies |
competitor-traffic.json | DataForSEO position buckets, ETV and top keywords for all 8 domains |
competitor-backlinks.json | Referring domains, anchors and spam clusters for all 8 domains |
competitor-onsite.json | Identical-method sitemap counts, schema, llms.txt and head-defect check for all 8 domains |
keyword-universe.csv | 69 gap keywords with volume, CPC, intent bucket, observed SERP owner, owner position and URL |
ai-visibility-matrix.csv | 9 ChatGPT prompts: every business named, Follio presence, tracked competitors |
scoring-matrix.json | Weights, method, per-criterion scores and weighted totals |
podcast-transcript-sample.json | 10-episode caption sample: durations, word counts, measured words per minute |
youtube-channel.json, yt_videos.jsonl, yt_shorts.jsonl | Full YouTube catalogue with durations |
pagespeed.json | Core Web Vitals, mobile and desktop, lab and field, 3 pages |
agent-readiness.json | Both agent-readiness scans, per-check pass/fail/partial detail, and the note on why both scored the head defect as a pass |
sf-exports/ | Screaming Frog crawl overview, issues overview, orphan and redirect reports |
robots.txt, sitemap_*.xml, all-urls-raw.tsv | Source infrastructure files and full URL inventory |
errors.log | Every failed check, with timestamp and reason |
| Content type | URLs | Median words | Total words | Orphaned | Schema present |
|---|---|---|---|---|---|
Podcast episodes (/videos/) | 64 | 447 | 25,895 | ~48 | Yoast defaults only |
Research reports (/research-reports/) | 27 | 502 | 16,628 | 27 | Yoast defaults only |
| Pages | 27 | 556 | 21,554 | 12 | Yoast + 2 ContactPage, 1 AboutPage |
Case studies (/case-studies/) | 4 | 467 | 2,249 | 0 | Yoast defaults only |
Suburb data (/suburb-data/) | 3 | 428 | 1,292 | 3 | Yoast defaults only |
| Total | 125 | - | 67,618 | 90 | No content schema anywhere |
Word counts are from raw HTML body text and include navigation and footer chrome (the smallest page on the site is 37 words, which sets the boilerplate floor). Actual article-body content is lower.
| Keyword | Volume | Position | CPC (AUD) | Ranking URL | Type |
|---|---|---|---|---|---|
| folio | 3,600 | 7 | 1.60 | / | Name collision |
| follio | 480 | 1 | 0.84 | / | Branded |
| lachlan delahunty | 320 | 1 | 9.07 | /about/ | Branded |
| follio property | 90 | 1 | - | / | Branded |
| best suburbs to invest in perth 2025 | 50 | 5 | - | /videos/best-suburbs-to-invest-in-perth-2025-our-top-picks/ | Non-branded |
| folio financial services | 50 | 9 | - | / | Name collision |
| perth suburb profiles | 50 | 9 | - | /suburb-data/perth-suburb-report/ | Non-branded |
| perth property reports | 50 | 11 | 4.93 | /research-reports/perth-property-market-update/ | Non-branded, striking distance |
This is the complete list. Follio has 57 ranking keywords in total; the remaining 49 sit at position 21 or worse and generate no meaningful traffic.
| Priority | Issue | URLs | % of crawled |
|---|---|---|---|
| High | Page Titles: Outside <head> | 31 | 100% |
| High | Canonicals: Outside <head> | 31 | 100% |
| High | Validation: <head> Not First In <html> Element | 31 | 15.5% |
| High | Directives: Outside <head> | 31 | 16.7% |
| High | Response Codes: Internal Client Error (4xx) | 9 | 3.5% |
| High | Response Codes: Internal Blocked by Robots.txt | 3 | 1.2% |
| Medium | Canonicals: Missing | 31 | 100% |
| Medium | Meta Description: Outside <head> | 31 | 100% |
| Medium | Meta Description: Multiple | 28 | 90.3% |
| Medium | H1: Multiple | 16 | 51.6% |
| Medium | Images: Over 100 kB | 60 | 42.3% |
| Medium | Page Titles: Below 30 Characters | 12 | 38.7% |
| Low | Meta Description: Duplicate | 31 | 100% |
| Low | Links: Internal Outlinks With No Anchor Text | 31 | 100% |
| Low | Security: Missing HSTS Header | 186 | 93.0% |
| Low | Security: Missing Content-Security-Policy Header | 186 | 93.0% |
| Low | Security: Missing X-Frame-Options Header | 185 | 92.5% |
| Low | Images: Missing Alt Text | 94 | 66.2% |
| Low | H2: Multiple | 29 | 93.6% |
| Low | H2: Non-Sequential | 12 | 38.7% |
Screaming Frog crawled 260 URLs by following links from the homepage and found only 31 HTML pages. The percentages above are against its own crawl set, which is itself the evidence for finding OS-02.
| Measure | Raw (no JS) | Rendered | JS-only |
|---|---|---|---|
| Words | 16,441 | 16,902 | 461 (2.73%) |
| Links | 790 | 790 | 0 (0.00%) |
The one page where JavaScript matters is /propstac-waitlist/: 81 raw words against 458 rendered, 82.3% JavaScript-only, because the page is a HubSpot form embed. Everywhere else Elementor server-renders and non-rendering AI crawlers see the same content Googlebot sees.
Follio publishes more original property data each week than any competitor in this report, and captures none of it. The first four weeks of work are repair, not creation.