How to analyze your Airbnb reviews to find recurring complaints
Your star average tells you something is wrong. The review text tells you what. Most hosts read a review once, feel bad for twenty minutes, and never look at it again — which is how the same complaint keeps reappearing for two years while the rating slides.
Why the star average is the wrong place to look
Guests leave five stars and still write "the mattress was uncomfortable." They rate a stay 4 and bury the reason in a sentence about parking. Over eighty reviews, a 4.7 average can quietly hide twelve mentions of the same broken thing. The number is the symptom; the text is the diagnosis. Ranking your listing by rating tells you which property is worst. Reading the text tells you which $200 purchase fixes it.
Step 1: get the reviews into a file
Airbnb's host dashboard doesn't offer a one-click "download all reviews" CSV — the export you can pull natively from the dashboard is reservations and transactions, not review text. So there are three practical routes:
- Your channel manager or PMS. If you run ten or more listings you're probably on Hospitable, Guesty, Hostaway, Lodgify or similar. Most of them have a reviews export that includes listing name, overall rating, the public review text, the guest's private feedback and your public response. This is the best route: one file, every listing, including the private comments guests won't post publicly.
- Manual copy-paste. Open Reviews in the Airbnb dashboard, filter by listing, and paste the text into a spreadsheet. Two columns — date and review text — is enough to start. Budget about 30 minutes for 100 reviews. Tedious, works everywhere, costs nothing.
- A browser extension that scrapes the public reviews page. Useful for reading a competitor's listing, since you only get the public text — no sub-scores, no private feedback. For your own listings, route 1 is better.
VRBO works the same way: reviews are visible per listing in your dashboard, and if you're on a PMS the export is the clean path. Whichever route you take, one row per review, and keep the listing name in a column even if you only have three properties.
Step 2: the spreadsheet method that needs no tools
Open Google Sheets or Excel. First sheet: Date | Listing | Rating | Review text, one row per review. That's your raw data and it takes an afternoon once a quarter.
Second sheet: one row per complaint theme, with keywords and a count formula.
| Theme | Keywords to search | Reviews mentioning it |
|---|---|---|
| Wi-Fi / connectivity | wifi, wi-fi, internet, signal, router, dropped, slow | 22 |
| Cleanliness | clean, dirty, dust, hair, smell, musty, stain, bug | 9 |
| Check-in / access | check in, check-in, code, key, lockbox, door, arrive, access | 17 |
| Noise | noise, noisy, loud, traffic, neighbour, street, dog | 6 |
| Bed / sleep | bed, mattress, pillow, sheets, sofa, slept, curtain | 14 |
In Google Sheets, count a theme with SEARCH across the review column:
=SUMPRODUCT(--ISNUMBER(SEARCH("wifi",$D$2:$D$500)))
+SUMPRODUCT(--ISNUMBER(SEARCH("internet",$D$2:$D$500)))
In Excel, COUNTIF is shorter and just as good:
=COUNTIF($D$2:$D$500,"*wifi*")+COUNTIF($D$2:$D$500,"*internet*")
Divide each count by the total rows and you have a mention rate: Wi-Fi in 27% of reviews, cleanliness in 11%, beds in 17%. That percentage, not the star average, is what you act on.
Two honest limits of keyword counting. It can't tell positive from negative — "the Wi-Fi was great" and "the Wi-Fi never worked" both count. And it misses typos and synonyms you didn't think of, so every quarter you'll spot a mention your keyword list missed and add it. Neither limit breaks the method. A theme that shows up in a quarter of your reviews is worth reading by hand regardless of tone, and 20 minutes of reading tells you the tone.
Which complaint themes actually matter
Not all themes cost the same. Ranked by how much they typically drag a rating down:
- Cleanliness. The most damaging, because guests read it as a statement about how much you care, and it's the theme most likely to appear in the first line of a review.
- Check-in and access. The most common operational complaint and the most fixable. A guest locked out for 40 minutes writes about it.
- Wi-Fi and connectivity. One remote worker hitting a dead spot turns a 5-star stay into a 3.
- Bed and sleep quality. Mattress, pillows, blackout curtains, air conditioning noise. Slow to notice and cheap to fix.
- Noise. Often outside your control, which is why it belongs in your listing description rather than your maintenance list.
- Communication. Usually the 30 minutes right after check-in, when a guest has a question and no reply.
- Amenities. Missing or broken items: the hair dryer that isn't there, the kettle that doesn't work.
- Value. Almost never about price. It's the gap between what the listing promised and what the guest walked into.
- Location. You can't fix it. You can fix the expectation: photos of the street, the honest walk time to transit, a note about the hill.
Do it quarterly, on the same sheet
Add new rows, recalculate, and keep the old numbers. "Cleanliness mentions fell from 18% to 6% after the photo checklist" is the only proof your changes worked. A single snapshot looks like trivia; two snapshots look like management.
If you'd rather not do this by hand
This is exactly the job HostLens automates. Upload a CSV of your reviews — straight from your PMS export or your own sheet — and it returns rating trends per listing, recurring-complaint detection across those nine themes, and draft replies for the reviews that need one. The CSV analyser is free to try; ongoing monitoring for a portfolio is $19 a month.
Start with the free analyser. Upload one listing's reviews and get the complaint breakdown in about a minute — then decide whether the spreadsheet is worth keeping.