An evidence-led review of pna.co.za across the shopping experience, e-commerce journey, performance, measurement, search visibility and merchandising — benchmarked against three relevant retailers, with a clear recommendation and implementation path.
| Headline result | Decision |
|---|---|
| Platform verdict | Retain and optimise the current WordPress and WooCommerce platform. |
| Immediate concern | Customers arriving on the main site are not told that they must choose a store before they can buy, and the PostNet collection option fails during checkout. |
| Findings | 40 findings grouped into website experience; e-commerce and conversion; technical performance and measurement; and SEO, content and competitive position. |
| Recommended approach | Make store selection clear and unavoidable so customers can access a transactional store, fix or temporarily remove the broken PostNet collection option, then redesign the connected shopping journeys and establish reliable measurement for ongoing growth. |
What we assessed: the customer journey from finding a product through product pages, cart, checkout, delivery, collection and stock communication on desktop and a 390-pixel mobile viewport. Live testing on 18 August 2026 reconfirmed that main-site products cannot enter the cart before store selection. A real order or payment was not submitted, so failed-payment recovery, order confirmation and post-purchase messages remain not tested.
What we assessed: category structure, recommendations, featured and seasonal products, search results, filters, sorting, comparison and recently viewed items.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Unrelated categories appear while browsing | The PNA category sidebar surfaces unrelated choices such as technical-drawing and craft subcategories in shopping contexts where they do not belong. The taxonomy—the hierarchy and rules used to organise products—is mapped inconsistently, so shoppers have to interpret internal catalogue structure rather than useful retail choices. | Clean the product hierarchy, remove duplicate or misplaced categories and map every product to a consistent parent, subcategory and attribute set. Rebuild the sidebar from that cleaned structure. | High |
| No way to filter by price or stock availability | The full Filter & Sort panel offers Categories, Brands and Product Tag only. There is no price-range control and no "in stock only" toggle. Brand filtering and sorting by popularity, newest and price do work. | Add a price-range filter and an availability toggle to the existing filter panel — both are standard WooCommerce filter widgets. | Medium |
| No product comparison feature; no "recently viewed" module | There is no product-comparison control and no recently viewed module after browsing several products. | Consider adding a lightweight recently-viewed module (low-effort, works well for a repeat-visit stationery/back-to-school shopper); product comparison is a bigger build and can be deprioritised. | Low |
What we assessed: product information, images, price, stock, purchase controls, fulfilment information, related products and reviews. The main site and a store-specific product page were compared to separate the platform capability from the implementation problem.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Store selection is required but not explained | Main-site product pages are the pages reached from the homepage and search engines, yet they never explain that a customer must choose a specific PNA store before buying. Root cause: the WordPress network contains a main catalogue plus separate transactional store sites; the customer-facing route between them is missing. | Add an unavoidable store-choice step at the start of shopping, remember the selection and keep a visible "change store" control. In parallel, validate whether central fulfilment or reliable nearest-store routing is the more maintainable long-term model. | Critical View screenshot → |
| Main-site products show stock but no Add to Cart or quantity | Products opened from the homepage or main catalogue show a price and "Available in stock" but no quantity selector and no Add to Cart button. Live logged-in testing reconfirmed this on 18 August 2026. Store-specific product pages do show those controls, proving the theme and WooCommerce can support them. | Until the permanent routing model is implemented, replace the missing purchase area with a clear "Choose a store to buy" action. After selection, expose quantity, stock and Add to Cart in the same predictable position on every product page. | Critical |
| Mobile cart icon is tiny and performs a different action | The icon over product cards looks like quick add, but opens the product page as "Read more." On a 390-pixel viewport it measured about 20×21 px, less than half the recommended 44×44 px minimum tap area, and its accessible name does not match the cart symbol. | Either make it a real Add to Cart control after store selection, or replace the cart symbol with a clearly labelled "View product" action. Increase the interactive area to at least 44×44 px and align the visible icon, label and screen-reader name. | High |
| No delivery/collection information or expected delivery timing shown | Product pages show price and stock status only — no delivery options, collection options, or expected delivery timing anywhere on the page. | Add delivery/collection information and estimated timing to the product page template. | Medium |
| Product descriptions read as unedited, comma-spliced copy | Description text runs sentences together with commas instead of full stops, e.g. "Achieve Dramatic Contrast with the Faber-Castell Goldfaber Grade 2B Pencil, Unlock deep shadows..." — repeats across listings. | Run a copy pass over bulk-generated descriptions; set a consistent format template for future imports. | Medium |
| No reviews or ratings displayed | No product reviews or star ratings appear on any product page checked. | Consider enabling verified product reviews and include valid review information in Product structured data so customer trust and search-result eligibility improve together. | Low |
What we assessed: quantity changes, removal, saved-cart behaviour, discount-code entry, delivery-cost visibility, stock alerts, add-on recommendations and persistence.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Cart totals and item states can update late | A later review reported that products added, removed or changed in quantity do not always appear immediately and may require a manual refresh. This was not independently reproduced during the latest read-only check, so it should be treated as a reported synchronisation defect pending the controlled purchase-path test. | Reproduce across representative store sites and devices, then inspect WooCommerce AJAX requests, caching, sessions and cart-fragment synchronisation. Add regression tests covering add, remove, quantity, subtotal and cart-badge updates before release. | High |
| No promo-code field or cross-sell/add-on prompts in the cart | Store-specific carts expose quantity and removal controls, but their immediate synchronisation still requires validation. Separately, the cart has no promotional-code field and no "you might also need" or add-on suggestions. | Add a promo-code field to the cart page, and a small cross-sell module (e.g. "complete the set" for stationery bundles) — both are standard WooCommerce cart features. | Medium |
| No delivery-cost visibility until checkout | The cart page's "Estimated total" only ever shows the product subtotal and VAT — delivery cost only appears once you reach checkout and pick a delivery method. | Show an estimated delivery range and the full likely order cost in the cart. Baymard's 2025 quantitative research found 12% of abandoners could not see the total cost before checkout and 40% left because extra costs were too high, making early cost visibility a conversion requirement rather than a cosmetic improvement. | Low |
Research source: Baymard Institute, e-commerce UX statistics (2025 data).
Not tested because the main-site purchase path could not place an item in the cart during the 18 August validation:
What we assessed: contact details, delivery and collection, address entry, charges, payment choices, mobile layout, errors and support access. No real order or payment was submitted.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Default delivery option fails with a store-loading error | Checkout's cheapest "Ship" option, "Collect at PostNet" (R69), requires picking a PostNet branch — but the store list fails to load: "Error loading stores: Invalid store data received." Clicking Retry does not resolve it. This blocks checkout completely for anyone who selects the default/cheapest shipping method. | Test the available PostNet update from 1.0.14 to 1.0.15 safely in staging, validate compatibility and the API/store-data response, and then repair configuration or custom code as required. Until the complete checkout path passes, hide "Collect at PostNet" rather than offering an option that cannot be completed. | Critical View screenshot → |
| Standard card payment is unavailable | The only payment option at checkout is Zapper (a QR-code mobile payment app) — no card, EFT, or other option is shown once shipping is selected. This directly contradicts the site's own footer, which is present on every single page: it reads "Secure Payment — pay with popular and secure payment methods" and displays Visa and Mastercard logos site-wide. A customer sees card-payment signage on every page, then can't actually pay by card. That's not just a missing feature — it's a trust signal the site can't back up. | Add a conventional card-payment gateway and test Visa/Mastercard completion, decline handling and recovery. Until it works, remove the card logos and rewrite the footer so it does not advertise an unavailable payment method. | Critical |
| Delivery cost is disproportionate for small orders | Shipping a single R12.99 pencil costs R69 (PostNet collect, once fixed) or R170 (PostNet door delivery) — up to 13× the item's value. "Pickup in Store" at the previously-selected store is free and worked cleanly, but is the only economical option for a small single-item order. | Consider a minimum-order threshold for paid shipping, or surface "Pickup in Store" more prominently as the default for low-value baskets. | Medium |
What did work well:
Testing status: the homepage and product journey were retested at 390×844 px. Guest checkout, failed-payment recovery, order confirmation and confirmation email/SMS remain not tested because the main-site journey could not add a product and a real transaction was outside this non-destructive audit. These are Phase 1 acceptance tests before launch.
What we assessed: delivery areas, fees and timing; collection and store selection; stock handling; tracking, returns and post-purchase communication.
A direct, like-for-like comparison: a PNA product page at a store-scoped URL (/clearwater-mall/product/... — already past the store-selection gate, so this is PNA's best-case page) against a comparable stationery item on Waltons, a similar South African office/stationery retailer. Both captured live on 14 August 2026. This is a separate question from the store-gating Critical finding above: even once a PNA visitor clears that gate, how does the page itself compare on features a shopper would expect?
PNA · pna.co.za/clearwater-mall/product/croxley-colour-pencil-wood-free-set-of-14/ · store-scoped, authenticated session · 14 Aug 2026.
Waltons · waltons.co.za · Monami Wax Crayons Retractable Assorted (Pack 12) · 14 Aug 2026.
| Feature on the product page | Waltons | PNA |
|---|---|---|
| Delivery time estimate shown on the page | ✓ | ✗ |
| Store/stock availability check ("How to get it" box, check stock nearby) | ✓ | ✗ |
| Wishlist / save for later | ✓ | ✗ |
| Cross-sell bundle with one-click "add selected to cart" | ✓ | ✗ |
| Genuinely related "similar products" (same category) | ✓ | ✗ |
| Rich, multi-paragraph product description | ✓ | ✗ |
| Dedicated specifications section | ✓ | ✗ |
| Customer reviews | ✓ | ✗ |
| Product-page FAQ (delivery, returns, VAT, B2B, etc.) | ✓ | ✗ |
| Transparency note on how recommendations are generated | ✓ | ✗ |
| Persistent utility bar (store locator, track order, delivery promise) | ✓ | ✗ |
| Third-party trust signal visible sitewide (e.g. review-platform rating) | ✓ | ✗ |
Scores reflect what this audit could directly observe. Where a genuine score requires access we don't have, it's marked "Not measured" rather than guessed.
View screenshots for the Critical findings →
| Area | Score | Risk | Key issue | Opportunity |
|---|---|---|---|---|
| Brand experience | 5/10 | High | Visual brand compliance is strong, but the value proposition isn't stated in one clear line and shopping vs. store-finding aren't presented as the two primary choices. | A single above-the-fold statement and clearer primary CTAs lift first impression with no visual redesign needed. |
| Navigation | 4/10 | High | The main menu mixes ten-plus unrelated items at the same level, "Shop my School" exposes a broken shortcode, the Categories menu mixes departments with very specific product types, and filters show duplicate or unrelated subcategories. Breadcrumbs and click depth work well, as does the store locator. | Reorganise the information architecture—the labels and hierarchy customers use to find content—into a short task-based menu. Clean the category structure and make "Shop Online" and "Find a Store" persistent primary choices. |
| Mobile usability | 3/10 | High | The responsive layout itself is generally clear, but the score is held at 3/10 because the central buying failure is identical on mobile and the cart-shaped product control is only about 20×21 px, opens "Read more" instead of adding to cart, and is far below a 44×44 px tap target. | Preserve the clean responsive layout, but rebuild the shared mobile shopping controls: store choice, product-card action, search/filter interaction and accessible tap areas. |
| Product discovery | 4/10 | Medium | Search over-weights partial matches, has no predictive suggestions or spelling tolerance, and offers no recovery from zero results. The product hierarchy is inconsistent and filters omit price and availability. Brand filtering and sorting do work. | A dedicated search-relevance plugin/config (covers relevance, predictive suggestions and spelling tolerance in one move) plus a taxonomy fix and a price/availability filter are contained, high-value work. |
| Accessibility | 4/10 | High | Keyboard users receive no visible focus indicator—the outline showing which link or control will activate when Enter is pressed. Rotating banners also lack useful image descriptions, and several mobile controls have undersized tap areas. | Add a strong visible focus style, meaningful banner alternative text and at least 44×44 px tap areas in shared components. Retest against Web Content Accessibility Guidelines (WCAG) 2.2. |
| Product pages | 3/10 | Critical | Products reached from the homepage or search engines show price and stock but no quantity or Add to Cart. Store-specific versions work, so the missing customer route between the main catalogue and each transactional store is the failure. | Immediately add "Choose a store to buy," then implement the agreed long-term routing or central-fulfilment model in the shared product template. |
| Cart and checkout | 3/10 | Critical | Store-specific cart capability exists, but delayed cart-state updates have been reported; the default/cheapest checkout delivery option ("Collect at PostNet") fails outright, and only one payment method (Zapper) is offered. | Reproduce and repair cart synchronisation, safely test the available PostNet plugin update in staging, fix the store-data error and add a card payment option. |
| Delivery and collection | 5/10 | Medium | Store-level stock and free pickup work. Shipped delivery is undermined by the broken PostNet option, high fees for small orders and no product-page delivery promise. | Repair PostNet, disclose cost and timing earlier, and make free pickup prominent for low-value baskets. |
| Content, SEO & merchandising | 5/10 | High | Product pages carry no structured data; many published pages have no Rank Math focus keyword or score and inconsistent schema; internal Motta builder types are included in the sitemap; and expired campaign content remains live. | Run a page-level SEO programme, clean the public URL and sitemap inventory, and establish campaign-expiry and content-governance ownership. |
| Technical performance | 5/10 | High | A Lighthouse lab test found severe mobile loading delay. The 157-site network is actively changing, earlier Bryanston evidence recorded intermittent 503 resource failures, and the admin area shows a core/plugin maintenance backlog and inactive Motta dependencies. | Prioritise mobile loading, then introduce representative-store monitoring, staged maintenance, dependency validation and regression testing across shared templates. |
| Tracking | Not fully measured | Medium | The front end loads 15+ overlapping measurement scripts, including duplicate Facebook and TikTok pixels. Google Analytics 4 (GA4) reports 0 product views as well as 0 purchases despite substantial traffic, which indicates incomplete e-commerce measurement. | Review Google Tag Manager (GTM), the tool used to deploy tracking, and confirm that product view, add-to-cart, checkout and purchase events fire once with correct values. Remove duplicate scripts. |
| Conversion effectiveness | Not reliably measured | Critical | GA4 records R0.00 purchase revenue, 0 purchasers and no funnel progression for 1 May–31 July 2026. Because even product views record as zero, the data layer is probably incomplete and the commercial figures must be reconciled. Independently of GA4, the generic purchase path and PostNet checkout option are visibly obstructed. | Fix the purchase-path blockers and the measurement implementation together, then reconcile transactions and establish a trustworthy conversion baseline before further marketing spend. |
We assessed the customer-facing experience, e-commerce journey, technical performance and measurement, and the site's search visibility and retail content. These cards highlight the issues with the greatest customer or business impact. The linked evidence pages contain every finding, recommendation and test limitation for each grouped area.
| Pillar | Recommended actions |
|---|---|
| Experience design |
|
| Development & integrations |
|
| Analytics & performance |
|
| Content, merchandising & SEO |
|
| Platform governance |
|
These are opportunities to grow and improve PNA's digital retail experience after the transaction path and measurement baseline are stable. Prioritise them using customer evidence, commercial value, delivery cost and operating complexity.
| Opportunity | Why it fits PNA specifically | Relative effort |
|---|---|---|
| Turn "Shop my School" into a real class-list shopping tool | Once the broken shortcode above is fixed, this is a natural place to go further: let a parent search their child's school and get a pre-built, editable list they can add to cart in one click. This is a proven back-to-school conversion driver at other SA retailers and plays directly to PNA's core seasonal business. | Medium–High |
| Surface COLOUR Rewards status for logged-in members | The header shows "Welcome [username]" with no points balance, tier or reward visible anywhere, even though PNA COLOUR Rewards is actively marketed as a "Free Rewards Programme" with member-only offers. Showing balance at a glance turns the loyalty programme from a one-time sign-up page into an ongoing reason to come back. | Low–Medium |
| Build "Bundles" as a real feature, not a campaign image | The homepage already promises "Save on selected School Bundles" — right now that leads to a static promotional graphic. A genuine bundle tool (pick a bundle, add every item to cart in one action, at a bundle price) would deliver on that promise and lift basket size in exactly the season PNA cares most about. | Medium |
| Add a wishlist / save-for-later | Parents typically build a school-supply list gradually, often across more than one visit or device. A wishlist (with an optional email reminder) matches that real shopping behaviour and is a standard, low-cost WooCommerce addition. | Low |
| Default to the nearest store instead of requiring a manual pick | This directly addresses the Critical store-gating finding, but it's worth framing as an enhancement, not just a fix: defaulting to the nearest store by IP/geolocation (with an easy "not your store?" override) removes the extra step entirely for most visitors, rather than just labelling it better. | Medium |
| Add live chat or an AI shopping assistant | Today, support is phone, email or WhatsApp only. A chat widget would reduce load on the Help Center and could also proactively explain the store-selection step to a confused first-time visitor — turning a support channel into a conversion-recovery tool. | Low–Medium |
| Add locally-popular payment options alongside card | Beyond fixing the Zapper-only gap with a card gateway, consider adding a buy-now-pay-later option popular in South Africa (e.g. PayJustNow, Happy Pay) — a natural fit for bulk back-to-school spend, which can be a meaningful once-off cost for a family. | Medium |
| Put the existing tracking investment to work on-site, not just off-site | The site already loads 15+ tracking scripts for outbound retargeting. Once duplication and consent are resolved, validated behavioural data could also support useful on-site personalisation such as "based on what you've viewed." | Medium–High |
Two further ideas worth a closer look but not fully scoped here:
A three-phase improvement programme, with technical validation and measurement beginning on day one. Timing is indicative and should be confirmed after access, architecture and integration discovery.
Contain the visible purchase-path failures immediately while the permanent architecture and integration decisions are validated.
Proceed once the Phase 1 technical decision establishes how the Main site, store subsites, inventory and fulfilment should work together.
Optimise only after the transaction path and measurement baseline are trustworthy.
| Decision question | Wetpaint's answer |
|---|---|
| 1. What must be fixed immediately? | Contain the two purchase-path blockers: clearly route generic visitors through store selection, and fix or temporarily remove the broken PostNet collection option. Repair or remove the broken “Shop my School” destination. In parallel, verify the e-commerce data layer and reconcile transactions so recovery can be measured reliably. |
| 2. What requires redesign or redevelopment? | The header and navigation, homepage entry, category/search/filtering and result-card experience, product-page template, cart and checkout, mobile/accessibility components, gift-card hand-off, campaign/merchandising framework and shared Multisite release process. These are connected workstreams within the current platform, not a mandate to replace the entire site. |
| 3. What can be improved within the current platform? | Most customer-experience, search, accessibility, SEO, content and merchandising issues; category and sitemap cleanup; tracking; delivery information; campaign governance; controlled maintenance; and shared-template quality. |
| 4. Is the technology suitable? | Yes, based on current evidence. Some store-specific product and cart functions demonstrate usable capability, but one working store is not proof of network-wide reliability. Validate a representative sample of the 157-site architecture, hosting, dependencies, security, inventory, fulfilment, payment, analytics and long-term maintenance before committing major implementation spend. |
| 5. What is the expected benefit? | Fewer interrupted purchase journeys, clearer product discovery and fulfilment choices, improved conversion potential, stronger discoverability, more reliable measurement and a maintainable release process. A numerical revenue forecast should only be set after transaction records and analytics are reconciled. |
| 6. How should it be implemented? | Use the three-phase programme: stabilise transactions and validate technology and measurement; redesign priority journeys through reusable templates and a small design system; then build for growth through SEO, merchandising, dashboards and continuous optimisation. |
| 7. What happens next? | Confirm the Phase 1 scope, named business and technical owners, required access, test-order authority and decision criteria. Begin transaction containment, controlled PostNet/cart testing, the maintenance audit and technical/data validation immediately, then approve the permanent architecture before redesign investment. |
Completed means directly observed or tested. Partially completed means core evidence was reviewed but a named dependency remains. Not tested means no reliable conclusion should be drawn until the listed validation is performed.
| Audit area | Status | Remaining validation |
|---|---|---|
| Brand, navigation, mobile, search, accessibility and sampled content | Completed | Repeat after the priority templates are rebuilt. |
| Page-level SEO, sitemap and public URL inventory | Partially completed | Admin sampling confirms widespread gaps; complete a page-by-page SEO exercise and full crawl covering canonicals, internal links, duplicate/obsolete URLs and indexation. |
| Competitor benchmark | Completed | Directional public-journey comparison; no purchases were placed on competitor sites. |
| E-commerce journey through checkout | Partially completed | The product path and previously captured checkout evidence were reviewed; delayed cart updates still require reproduction and no real payment was submitted. |
| Guest, failed-payment, confirmation and post-purchase journeys | Not tested | Complete controlled mobile and desktop transactions once the main purchase path and card payment are available. |
| Conversion funnel, average order value, category revenue and abandonment | Partially completed | Verify event tracking and reconcile platform, gateway and finance records. |
| Infrastructure, security, scalability and integration health | Partially completed | Admin review identified network growth, update/dependency risk and intermittent store evidence; hosting logs, backups, capacity, monitoring, inventory/product feeds, fulfilment and third-party integrations still require validation. |
Checked: is the offering immediately clear; does the site feel modern, credible and recognisably PNA; are priority promotions visible; is the value proposition clear; is there a strong distinction between shopping online and finding a store; are campaigns properly integrated — plus compliance against PNA's own Creative Guide (logo, colour, type).
| Brand standard | PNA's Creative Guide specifies | What pna.co.za actually uses | Status |
|---|---|---|---|
| Primary font | Roboto — primary font for all PNA communications | Google's Roboto sitewide | Compliant |
| Creative/headline font | Rockwell — campaign/creative executions only | Not used on the transactional site (expected — Rockwell is scoped to print/campaign creative) | N/A here |
| Primary logo & placement | Red "holding shape" logo, top/bottom-left, strapline kept with it | Correct logo, top-left, strapline intact on desktop and mobile | Compliant |
| Corporate colour palette | 11 approved Pantone colours (red, charcoal, grey, greens/blues/cream primary; peach, yellow, teal, olive, purple secondary) | Main site stays within this system | Compliant |
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Value proposition isn't stated in one clear line | The complete PNA offer is not summarised anywhere as one clear statement — visitors have to infer it from the navigation and category imagery. | Add an above-the-fold statement, e.g. "Shop stationery, school supplies, books, office essentials and art materials online — or find your nearest PNA store." | High |
| Shopping online vs. finding a store isn't a clear choice | Both journeys exist, but neither is presented as one of two dominant, persistent actions. "PNA Locations" is less direct than "Find a Store," and neither choice tells visitors that a store must be selected before they can buy. | Use persistent "Shop Online" and "Find a Store" actions in the desktop header and mobile navigation; rename "PNA Locations" to "Find a Store". | High |
| "Buy a Gift Card" leads to an off-palette microsite | The link leaves pna.co.za for colouryour.world, a separate domain with its own nav and cookie-consent popup, using a bright pink/magenta colour scheme — pink appears nowhere in PNA's 11-colour approved palette — and the fallback script-only logo instead of the primary holding-shape mark. |
Integrate gift-card purchase into the main PNA platform where practical. If the external service must remain, make the hand-off seamless through PNA-approved branding, consistent navigation and account messaging, a clear return route to pna.co.za and matching support information. | Medium |
| Mobile hero banners are cropped at the edges | Banner images are art-directed for a wide desktop ratio; on mobile, text and logo elements get clipped (seen on "100+10 Free" and "Funky Socks Day"). | Supply a separate mobile-cropped asset, or use responsive art-direction via <picture>. |
Low |
| Inconsistent inline emphasis in body copy | One phrase ("at exceptional value") is styled bold red mid-paragraph on About Us, with no comparable emphasis anywhere else on the site. | Remove the one-off styling or apply a consistent, intentional emphasis pattern sitewide. | Low |
Tested at a 390×844 viewport across the homepage and product journey, covering menu, links and buttons, readability, browsing, search, imagery, purchase controls and responsive behaviour.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Grid "quick add" icon is roughly half the recommended tap size | The cart-shaped control is positioned over the product image and measured about 20×21 px on a 390-pixel viewport. It opens the product page as "Read more" instead of adding the item, so its size, position, icon and accessible name communicate four different things. | Use a clearly labelled "View product" control or a genuine Add to Cart after store selection. Give the interactive area at least 44×44 px and keep the visible icon, text and screen-reader name consistent. | High |
| Store-first purchase gating affects mobile identically | Products opened from the mobile homepage show price and "Available in stock" but no quantity or Add to Cart until a specific store has been selected. The requirement is not explained. | Add an unavoidable store-choice step before transactional browsing, remember the choice and expose a visible "change store" control. Then show consistent quantity and Add to Cart controls. | Critical |
| Hero banners crop on mobile | Desktop-format campaign artwork is scaled into a narrow frame, reducing legibility and cropping important promotional content. | Supply a mobile-cropped banner asset. | Low |
No other mobile-only layout breakage (overlapping elements, horizontal scroll, unreadable text, broken pop-ups) was found across the pages tested.
Assessed: search accuracy, predictive suggestions, spelling tolerance, product-name and category recognition, zero-result searches, result relevance, filters and sorting, availability information.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Search results don't prioritise the closest match | Searching "pen" returns 228 results with "PNA Pencils HB Pack of 24" first, ahead of any actual pens — broad substring matching (pen → pencil) overwhelms relevance. | Tune relevance/weighting so exact word-boundary and title matches outrank partial/description matches, or add a dedicated search plugin. | Medium |
| Zero-result searches are a dead end | A no-match search shows only "No products were found matching your selection." — no spelling suggestions, no "did you mean," no popular products, no related categories. | Add a zero-results fallback: suggested categories, best-sellers, or a "did you mean" prompt. | Medium |
| No predictive suggestions while typing | Typing into the search box (tested with "penc") produces no autocomplete/autosuggest dropdown at all — no product-name suggestions, no category shortcuts. A customer has to type a full query and submit blind every time. | Add predictive search as part of one consistent results-card system. Suggestions and result cards should show image, product name, price, a short key specification and an explicit In Stock / Out of Stock state, with category shortcuts where useful. | Medium |
| Zero spelling tolerance — common misspellings return nothing | Searching the one-letter misspelling "pensil" (for "pencil," one of PNA's core product lines) returns "No products were found matching your selection" — the same dead end as the zero-result finding above, but for a query a real customer is likely to type. | Add fuzzy/typo-tolerant matching (e.g. a Levenshtein-distance or "did you mean" layer) so near-misses on common product names still surface results. | Medium |
Filtering and sorting on the search-results page were not separately tested from the category-page versions covered under Product Discovery below (same underlying filter widget). The redesigned search, filters and result cards should be treated as one experience, with consistent price, key specification and stock-status information.
Checked: colour contrast, font sizes, keyboard navigation, image descriptions, form labels, error messages, button clarity, consistency of icons and terminology, ease of use across digital-confidence levels.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| 16% of homepage images are missing alt text | All rotating promotional banners (24 of 148 homepage images) have no alt attribute — screen readers get no description, and search engines can't index the promotional content. | Add descriptive alt text to every promotional banner as part of the upload process. | Medium |
| Interactive elements are undersized for touch and precision input | A wider homepage sweep found 316 of 449 checked interactive elements below 40 px in at least one dimension. The cart-shaped product control measured about 20×21 px and is positioned over the product image. | Increase interactive hit areas to at least 44×44 px in shared header, carousel and product-card components, starting with the product action. | Medium |
| No visible keyboard-focus indicator anywhere tested | Pressing Tab repeatedly through the header produces no visible outline or highlight. A keyboard or low-vision user therefore cannot see which control will activate next. This fails the Web Content Accessibility Guidelines requirement for visible focus. | Add a visible focus style (outline or equivalent) sitewide — almost certainly a global outline: none or similar reset with nothing put back in its place. A CSS-only fix. |
High |
| Minor form accessibility flags | Chrome's own checks flag one homepage field without an id/name attribute and two without autocomplete (likely newsletter/search forms). | Add proper name/id/autocomplete attributes to the flagged fields. | Low |
What we assessed: recorded shopping progression, new and returning audiences, purchase revenue and whether the available analytics can support conversion decisions. Device/source conversion, average order value, category revenue, abandonment, payment failures, product-page exits and internal-search usage remain unreliable until event tracking and transaction records are reconciled.
| Funnel stage | Users | Conversion to next stage | Drop-off |
|---|---|---|---|
| Session starts shown in GA4 Purchase Journey, 1 May–31 Jul 2026 | 491,000 | 0% recorded | 100% recorded |
| Product viewed | 0 recorded* | — | — |
| Added to basket | 0 recorded* | — | — |
| Checkout started | 0 recorded* | — | — |
| Payment initiated | Not separately tracked | — | — |
| Purchase completed | 0 | — | — |
view_item, add_to_cart, begin_checkout and potentially purchase events may be incomplete or absent. The revenue and purchaser figures therefore remain analytics observations, not independent proof of actual sales performance, until reconciled with WooCommerce, gateway and financial records.What we assessed: a Lighthouse lab test of the live homepage on mobile and desktop, plus representative-page checks for loading, secure connection and browser errors. This is not a full catalogue crawl or a substitute for real-user field data, hosting logs, backup evidence or integration monitoring.
Largest Contentful Paint 25.2s · First Contentful Paint 4.5s · Speed Index 11.1s
Largest Contentful Paint 2.0s · First Contentful Paint 1.0s · Speed Index 3.7s
Lighthouse 13.4.1, single lab run on 18 August 2026. Google's good Largest Contentful Paint threshold is 2.5s or less. Results vary by run and should be repeated across homepage, category, product, cart and checkout templates.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Mobile main content appears far too late | Mobile Largest Contentful Paint—the time until the largest visible image or text block appears—was 25.2s, more than ten times Google's good threshold of 2.5s. Desktop reached 2.0s, showing a material mobile-specific gap. The mobile Performance score was 54. | Optimise and preload the mobile hero asset, serve correctly sized modern images, shorten the request chain, delay non-critical scripts and validate hosting response and caching. Repeat tests on cold and warm loads, then confirm with real-user field data. | High |
| Reliability and maintenance vary across the 157-site network | The network grew from 154 sites on 14 August to 157 on 18 August, confirming active operational change. Later Bryanston evidence showed broken templates and repeated HTTP 503 resource failures, although the same storefront loaded correctly on 18 August, indicating an intermittent rather than continuous fault. Network Admin also shows WordPress 7.0.4 available, seven plugin updates (nine update notices overall), a PostNet update from 1.0.14 to 1.0.15, and Motta warnings that the required Kirki and Meta Box dependencies are inactive. These are risk indicators, not proof of one root cause. | Introduce a controlled Multisite operating process: representative-store monitoring and regression tests, central 5xx/asset alerting, a site register with creation/archive/indexing ownership, and staged updates with backups, compatibility checks and rollback. Validate Motta dependencies and test the PostNet update in staging before redevelopment. | High View screenshots → |
What we assessed: whether PNA can reliably measure product and category views, searches, filters, cart and checkout actions, fulfilment choices, payments, purchases, revenue, promotional codes, store-locator actions and enquiries. Google Analytics reports are populated, but direct tag-manager, event-data and transaction-record access is required to confirm completeness and accuracy.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Heavy, overlapping third-party tracking scripts on every page | A single homepage load fires Google Tag Manager, Google Analytics, Google Ads/Doubleclick remarketing, two separate Facebook Pixel IDs, two separate TikTok Pixel IDs, Hotjar, Microsoft Clarity and a custom analytics endpoint — 15+ third-party requests before the user does anything. | Consolidate/retire duplicate pixels, defer non-critical trackers until after first paint, and review whether a consent banner is needed (the gift-card microsite shows one; pna.co.za doesn't). | Medium |
| GA4's own purchase-journey funnel reads 0% past session start, including "Product viewed" | For 1 May–31 July 2026, GA4 recorded 491k session starts but 0% reaching Product viewed, Added to basket or Begin checkout, with R0.00 revenue and 0 purchasers. Zero product views at this traffic volume is implausible and indicates incomplete e-commerce event tracking. | Use Google Tag Manager to confirm that product view, add-to-cart, checkout and purchase events are implemented, fire once and carry correct product, value and fulfilment data. Reconcile reported purchases with WooCommerce, the payment gateway and finance records. | High |
Now partly measurable with GA4 access: the reported values are confirmed as present in GA4. Whether they reflect customer behaviour, incomplete event implementation, or a mixture of both—and whether reported transactions reconcile with WooCommerce, the gateway and financial records—remains open.
Focused on: product/category-page indexation, product titles and descriptions, duplicate content, structured product data, pricing/availability signals, internal linking, out-of-stock handling, campaign landing pages, image optimisation, Google Shopping feed readiness.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Product pages carry no Product structured data | The only schema.org data found anywhere is a BreadcrumbList. No Product/Offer schema exists — Google has nothing to build price, availability or rating rich results from, and this is also a prerequisite for a healthy Google Shopping feed. | Add Product structured data (price, availability, SKU, reviews) to the product template — most WooCommerce SEO plugins generate this automatically once configured. | Medium |
| Page-by-page SEO optimisation is incomplete | The homepage has no meta description or Open Graph tags, and the WordPress Pages list shows many published pages with a Rank Math score of N/A, no focus keyword and inconsistent schema settings (including Schema Off or generic Article schema). The issue is broader than one missing homepage tag. | Run a structured page-level SEO programme covering titles, meta descriptions, focus keywords, heading structure, canonical settings, schema, Open Graph/social metadata, image optimisation and internal linking. Prioritise the homepage, store selection, top categories, campaigns and high-value products. | High View screenshot → |
| Sitemap and public URL inventory need cleanup | The XML sitemap exists but is not referenced in robots.txt. Rank Math also has both Footer Builder Template and Motta Template Builder set to "Include in Sitemap," while old pages, redundant links and expired campaign URLs remain publicly accessible. | Choose one canonical sitemap, reference it in robots.txt, exclude internal builder/template types unless they serve a clear search purpose, and run a URL inventory to remove, archive or redirect obsolete and duplicate content. | Medium |
The WordPress "No Index" warning links to the Boskruin store subsite, where "Discourage search engines" is checked and the toolbar labels the store "coming soon." The main pna.co.za setting is unchecked. Add indexing-state QA to the 157-site governance checklist so live stores are indexable and unfinished or archived stores remain excluded.
Observation, not scored — AI-crawler accessrobots.txt explicitly disallows a list of AI crawlers (GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, and others) with an "ai-train=no" content signal — likely a deliberate rights-reservation choice. Worth a conscious decision either way, given the growing share of shoppers discovering products via AI-powered search and shopping assistants.
Duplicate product content and out-of-stock handling were not found to be issues in the sampled pages, but a full content and URL inventory was not completed. Product titles/descriptions quality is covered under Content and Merchandising below.
Checked: promotional banners, seasonal collections, product hierarchy, bestsellers/new arrivals, cross-selling/upselling, campaign landing pages, online-exclusive offers, bundles, product recommendations, catalogue integration, content freshness, expired promotions.
| Issue | What is not working | What should change | Severity |
|---|---|---|---|
| Promotions page mixes current and expired campaign content | The Promotions page now contains three campaign banners, but the first still advertises the PNA Young Designers competition with an entry deadline of 31 July 2026. It remains presented as a live promotion on 18 August 2026 alongside current Funky Socks offers. | Remove or archive expired campaigns automatically, add visible offer dates and keep only current promotions in the primary journey. | Medium |
| Product descriptions read as unedited, comma-spliced copy | Descriptions across the sampled catalogue run multiple claims together with commas, lack a consistent specification structure and read as unreviewed bulk copy. | Use a reusable product-content template with a short benefit summary, scannable features, specifications, delivery information and a human editorial check. | Medium |
| No cart cross-selling and no transactional bundles | The cart does not recommend complementary items. The School Bundles promotion leads to static campaign content rather than a selectable bundle with one-click add-to-cart and bundle pricing. | Add tightly relevant cart recommendations and build true bundle products for school lists and seasonal sets, with stock and pricing validated per store. | Medium |
| Newsletter field typo, repeated sitewide | The footer newsletter placeholder reads "Enter your email adress" (missing a "d") on every page. | One-line fix in the footer template — worth prioritising given how visible and repeated it is. | Low |
| Expired in-store promotion still live across four site entry points | The "Mid-Year Back to School Savings" campaign (1 – 20 July 2026) and a "20% off RGS Puzzles" promotion (26 June – 20 July 2026) were still being actively surfaced on 7–8 August 2026, 2 to 3 weeks after they ended. On 18 August, the Promotions page itself also retained a PNA Young Designers banner stating "Entries close 31 July 2026" alongside current Funky Socks offers. The specific placements have changed, but the underlying content-expiry problem remains. | Set an editorial process (even a simple calendar reminder tied to each campaign's end date) to swap or remove expired promotional content — for a retail stationery calendar this recurs every school term, so it's worth automating rather than relying on someone remembering. | Medium |
A consistent public-journey comparison against three South African retailers with overlapping stationery and gifting ranges. No competitor purchases were placed. Lighthouse page-speed figures are single mobile lab runs on 18 August 2026 and should be read directionally.
| Area | PNA | Waltons | The Crazy Store | CNA |
|---|---|---|---|---|
| Mobile experience | Clear layout, but purchase controls and store routing fail | Complete shopping controls and 90 accessibility score | Clear catalogue-led mobile experience | Unavailable: server error |
| Navigation | Crowded menu and inconsistent category hierarchy | Six clear departments plus utilities | Products, promotions and store finder are explicit | Unavailable |
| Product search | Weak relevance, no suggestions or spelling tolerance | Prominent product search with popular-query shortcuts | Visible homepage search | Unavailable |
| Product pages | Main pages show stock but no Add to Cart; thin delivery detail | Delivery, local stock, wishlist, specifications, related items and reviews | Useful catalogue details, not a transactional page | Unavailable |
| Checkout simplicity | Store gate, broken PostNet and no standard card payment | Full e-commerce path with clear cart actions | No online checkout | Unavailable |
| Delivery & collection | Free store pickup works; delivery cost/timing appears late | Delivery area, same-day eligibility, tracking and free-delivery threshold are prominent | Store Finder supports the store-led model | Unavailable |
| Promotions | Strong banners, but expired campaign content remains live beside current offers | Current promotions connect directly to shopping | Dedicated leaflets and promotions with priced products | Unavailable |
| Mobile page speed | Lighthouse Performance 54; Largest Contentful Paint 25.2s | Performance 47; Largest Contentful Paint 8.9s | Performance 97; Largest Contentful Paint 1.5s | Not measurable while offline |
| Overall experience | Strong brand and catalogue foundation, but transaction confidence is broken | Strongest direct e-commerce benchmark | Strong browsing and store-led retail, but no online purchase | Availability is the defining failure during testing |
Live public checks: PNA, Waltons, The Crazy Store and CNA, 18 August 2026. Waltons' product-page feature comparison was also captured on 14 August 2026.
A curated evidence set covering the live mobile experience, the missing purchase control, Promotions-page content governance, checkout failure, the changing WordPress network, platform maintenance, page-level SEO and recorded analytics. Storefront and updated administrative evidence was captured on 18 August 2026; earlier administrative and analytics evidence was captured on 14 August 2026.
Live mobile homepage. pna.co.za · 390×844 Chrome viewport · 18 Aug 2026. The responsive layout is clean, but the cart-shaped product control is a roughly 20×21 px "Read more" link rather than a purchase action.
Main-site product page still has no purchase control. pna.co.za · authenticated desktop session · 18 Aug 2026. Price and "Available in stock" are shown, but no quantity selector, store-choice instruction or Add to Cart action appears.
Promotions page retains an expired campaign. pna.co.za/promotions/ · authenticated desktop session · 18 Aug 2026. The page now contains campaign content, but the leading PNA Young Designers banner still states "Entries close 31 July 2026" alongside current August and September offers. This replaces the earlier empty-page observation with current evidence of the underlying promotion-expiry problem.
The Multisite network increased to 157 sites. wp-admin/network/sites.php · Network Admin · 18 Aug 2026. The live register shows 157 total sites, 67 public and 89 archived, compared with 154 total on 14 August. This confirms active change and the need for store-creation, archive, indexing, QA and release governance.
Platform maintenance and dependency backlog. wp-admin/network/plugins.php · Network Admin · 18 Aug 2026. WordPress 7.0.4 and seven plugin updates are available, including PostNet 1.0.15. Kirki and Meta Box are inactive while Motta reports them as required. Update and dependency testing must happen in staging with backup and rollback.
Page-level SEO coverage is inconsistent. wp-admin/edit.php?post_type=page · authenticated desktop session · 18 Aug 2026. Multiple published pages show a Rank Math score of N/A, no focus keyword and mixed schema settings. The visible No Index notice links to the Boskruin coming-soon subsite; the main pna.co.za indexing checkbox was separately verified as unchecked.
No purchase path from a generic product page. pna.co.za/product/goldfaber-graphite-pencil-2h/ · desktop Chrome, authenticated session · 14 Aug 2026. Repro: open any generic (non-store-scoped) product URL — price and stock show, but there is no add-to-cart control or quantity selector anywhere on the page.
"Collect at PostNet" checkout error. pna.co.za/rivonia-village/checkout/ · desktop Chrome, authenticated session, store selected, item in cart · 14 Aug 2026. Repro: select "Ship" delivery at checkout with the default "Collect at PostNet" option — the store list fails with "Error loading stores: Invalid store data received," and Retry does not resolve it. (Also visible: Zapper is the only payment method offered.)
Earlier network capture: 154 WordPress Multisite sites. wp-admin/network/sites.php · logged in as a Network Admin · 14 Aug 2026. Shows the "Main" network site plus separate store subsites and provides the earlier baseline. The current evidence above shows the network increased to 157 sites four days later, strengthening the governance requirement.
GA4 purchase journey funnel: 100% drop-off after session start. GA4 property "PNA Website - GA4" · Purchase journey report, 1 May–31 Jul 2026 · reviewed 14 Aug 2026. Of 491k sessions, GA4 records 0% reaching "View product," "Add to basket," "Begin checkout" or "Purchase" — the same figures quoted in the Conversion and Performance Audit funnel table.
GA4 Generate leads overview: 491k new users, 66k returning, 0 qualified leads. GA4 property "PNA Website - GA4" · 1 May–31 Jul 2026 · reviewed 14 Aug 2026. Confirms the audience values recorded in this report; it does not by itself validate the e-commerce funnel.
GA4 Monetisation overview: R0.00 total revenue, 0 purchasers. GA4 property "PNA Website - GA4" · 1 May–31 Jul 2026 · reviewed 14 Aug 2026. Total revenue, purchase revenue and ad revenue all read R0.00 for the full three-month window, with 0 total and 0 first-time purchasers.