Fix the course index pages
Source: GEO Technical Site Audit – LCS (5 August 2026), Tier 1 recommendation 2 of 6
Two changes to two pages, https://londoncollegeofstyle.com/all-courses/ and https://londoncollegeofstyle.com/london-courses/:
- Render the course list as static HTML present in the page source.
- Replace the placeholder meta descriptions.
Your setup
Confirmed live on 24 August 2026:
| CMS | WordPress |
| Page builder | Elementor 4.2.3 |
| SEO plugin | Rank Math SEO |
| Courses | custom post type, 10 published courses, listed in course-sitemap.xml |
/all-courses/ | H1 Online Courses, meta description Online Courses, no course names or prices in the served HTML |
/london-courses/ | H1 London Courses, meta description London Courses, no course names or prices in the served HTML |
| Filters | Category (London, Online), Type (Colour analysis, Fashion styling, Interior design, Personal styling, Fashion Sustainability, Start & Grow, Fashion & Personal Styling), Level (Advanced Diploma, Diploma) |
| Site build | Code23 |
Render the courses as static HTML
The requirement
Every course on each index must have its name, one-line description, level, format, duration and price in the HTML the server returns – readable without executing JavaScript and without touching a filter.
Keep the filters. The change is that they should show and hide items already in the DOM rather than fetching them after load.
Check the current state
curl -s https://londoncollegeofstyle.com/all-courses/ | grep -i "colour analysis"
Today this returns only the filter dropdown <option> label. After the fix it must return the course name inside a course card. Repeat for /london-courses/ with grep -i "flagship".
Elementor route
The indexes are Elementor layouts, so check the widget settings before touching any code.
- Edit the page in Elementor and select the widget rendering the course grid – a Loop Grid or Posts widget over the course post type.
- In Query, confirm the widget returns all courses. Raise or remove any posts-per-page limit so nothing is held back – there are only ten.
- In Pagination, set it to None. "Load More" and infinite scroll fetch over AJAX, which leaves the later courses out of the served HTML.
- If a Taxonomy Filter widget drives the Category/Type/Level dropdowns, check whether it is set to reload results over AJAX. Where the widget offers a non-AJAX or client-side filtering mode, use it.
- Confirm the loop item template outputs the six required fields as text – see below. If price and duration are not on the template, add them as dynamic fields from the course post type.
If a custom filter script is involved
If the grid is populated by a bespoke AJAX or REST call rather than by Elementor's own query:
- Find the endpoint the filter calls and the template or shortcode behind it.
- Move that query so it runs during page render and outputs all ten courses into the markup.
- Point the filter JavaScript at the rendered elements – toggle a class or the
hiddenattribute – instead of requesting data. - Confirm no course card is injected after
DOMContentLoaded.
Fields required per course
Plain, labelled text. No facts baked into images, none that exist only in a tooltip.
| Field | Example |
|---|---|
| Course name | Colour Analysis Course Online: Advanced Diploma |
| Level | Advanced Diploma |
| Format | Online, weekly live masterclasses |
| Duration | 9 weeks |
| Price | £1,530 inc. VAT, or three interest-free instalments of £510 |
| One-line description | Professional colour analysis – seasonal theory, draping technique and colour as a chargeable client service. |
| Link | Anchor to the course page, with the course name as the link text |
The ten courses
Figures below are as published on each course page on 24 August 2026.
| Course | Level | Duration | Price | Links to |
|---|---|---|---|---|
| Personal Styling Female Clients Diploma – Online | Advanced Diploma | 8 weeks | £1,215 (3 × £405) | /courses/personal-styling-female-clients-advanced-diploma-online/ |
| Personal Styling Male Clients Diploma – Online | Advanced Diploma | 4 weeks | £465 | /courses/personal-styling-male-clients-advanced-diploma-online/ |
| Colour Analysis Course Online: Advanced Diploma | Advanced Diploma | 9 weeks | £1,530 (3 × £510) | /courses/colour-analysis-course-online/ |
| Sub-Season Colour Analysis Masterclass Certificate | Masterclass certificate | Online session + 1 day in London | £745 | /courses/sub-season-colour-analysis-masterclass-certificate/ |
| Interior Design Residential Diploma – Online | Diploma (foundation) | 11 weeks | £1,170 | /courses/interior-design-foundation-online-diploma/ |
| Interior Design Commercial Advanced Diploma – Online | Advanced Diploma (Level 2) | 10 weeks | £1,170 | /courses/interior-design-advanced-online-diploma/ |
| Personal Stylist Business Training: Business Launch & Development – Online | Vocational mentoring, no formal qualification | 6 weeks | £645 | /courses/start-and-grow-business-launch/ |
| Fashion Sustainability Certificate – Online | Certificate | 8 weeks | £180 | /courses/fashion-sustainability-certificate-online/ |
| Course | Level | Duration | Price | Links to |
|---|---|---|---|---|
| Personal Styling Advanced Diploma – Flagship London | Advanced Diploma | 1 week in London + 6 weeks online | £3,245 | /courses/personal-styling-course-london/ |
| Fashion & Personal Styling Advanced Diploma – Flagship London | Advanced Diploma | 6 weeks, 2.5 days/week | £6,450 | /courses/fashion-personal-styling-advanced-diploma-london/ |
| Sub-Season Colour Analysis Masterclass Certificate | Masterclass certificate | Online session + 1 day at Russell Square | £745 | /courses/sub-season-colour-analysis-masterclass-certificate/ |
The Sub-Season Masterclass is tagged both London and Online on its own page, so it belongs on both indexes. Confirm that is intended.
Both Interior Design pages state "3 interest-free instalments of £340" against a £1,170 fee, which totals £1,020. The Sub-Season page shows £745 for the 2026 intake in one place and £630 in a sidebar. Settle both before the figures go onto the index. Separately, five course pages state accreditation by the British Accreditation Council and the homepage meta description says "BAC accredited training", which /ace-accreditation/ says LCS has moved away from – that is one decision from LCS, applied to all six.
Add a portfolio paragraph above the grid
Two or three sentences of prose above the filters, before any course card, that AI assistants can quote as a summary of the portfolio. For /all-courses/: what is taught online, at what levels, that study is open worldwide, that sessions are recorded, that fees can be paid in three instalments. For /london-courses/: the Bloomsbury campus, the two flagship advanced diplomas, the blended format.
Link text
Use the course name as the anchor text, not "Find out more". None of the ten course pages were reached during the audit crawl – these anchors are what makes them discoverable.
Replace the meta descriptions
Edit the page in WordPress, open the Rank Math panel, click Edit Snippet, replace the Description, update.
/london-courses/ – replace London Courses with:
Advanced diplomas in personal styling and fashion styling taught in person at the London
College of Style campus in Bloomsbury, plus sub-season colour analysis. Pay in full or
in three interest-free instalments.
/all-courses/ – replace Online Courses with:
Study personal styling, colour analysis, interior design, fashion sustainability and
stylist business training online with the London College of Style. Eight courses from
£180, with weekly live masterclasses and interest-free instalments.
Keep both between 150 and 160 characters after any edits.
While you are in Rank Math, standardise the title suffix to the single form | London College of Style – the site currently mixes that with London College Of Style (capital O) across templates.
Purge and verify
Purge any CDN or cache layer Code23 has in front of the site, then:
- Source check.
curl -s https://londoncollegeofstyle.com/all-courses/ | grep -c "1,215"returns1or more. Repeat with3,245on/london-courses/. - Count check. All eight courses appear in the source of
/all-courses/, all three in/london-courses/. - JavaScript off. Load both pages with JavaScript disabled. Every course visible with name, level, format, duration and price.
- Filter check. Filters still work, and applying one does not trigger a network request for course data.
- Link check. Every course anchor resolves
200and lands on the right page. - Meta check. View source: the new
<meta name="description">is on each page, notLondon Courses/Online Courses. - Price check. Every price and duration on the index matches its course page.
- Re-request indexing for both URLs in Google Search Console.
Checklist
- Interior Design instalment arithmetic and Sub-Season price settled on the course pages
- Accreditation wording settled with LCS and applied to the five course pages and the homepage meta description
- All eight online courses render in the static HTML of
/all-courses/ - All three London courses render in the static HTML of
/london-courses/ - Each course shows name, level, format, duration and price as labelled text
- Each course links to its page with the course name as anchor text
- Pagination set to None; filters show/hide rendered items rather than fetching them
- Portfolio paragraph added above the grid on both pages
/london-courses/meta description replaced in Rank Math/all-courses/meta description replaced in Rank Math- Title suffix standardised to
| London College of Style - Caches purged, both pages verified with JavaScript disabled
- Both URLs resubmitted in Google Search Console