Yoast 프리미엄 구입
새로 워드프레스 기반의 블로그 사이트를 만들어서 띄웠는데, 마침 Yoast 프리미엄 구독이 Black Friday 할인을 하고 있었습니다. 게다가 할인 종료까지 얼마 남지도 않은 상황…
이에
- Yoast는 연말 할인 같은 것은 없을 것 같고, Black Friday 할인이 가장 큰 할인일 것이라, 사려면 지금 사야겠다는 생각이 들었고,
- 새로 만든 사이트라 검색 순위가 낮을 테니, SEO 작업이 필요할 것 같기는 한데,
- 할인해도 10만 원인 이걸 굳이…?
라는 생각이 들었지만, 역시 할인 쇼핑할 때는 “이제 마감까지 단 5시간 남았습니다!!!!”와 같은 홍보 문구가 제일 견디기 어려운 법이라, 일단 질렀습니다.
요즘은 이런 고민도 AI와 함께합니다.
사실 그동안 다른 블로그를 운영할 때에도 Yoast를 사용하기는 했었습니다. 헌데 그냥 초록불 켜기 용도로만 간단히 사용했었습니다. 그동안 블로그를 운영할 때에는 블로그 자체의 운영을 중요하게 생각했던 것이 아니라, 블로그를 띄워놓은 서버의 운영이나 모니터링, 이중화, 장애 처리 등등과 같은 인프라 운영을 더 중요하게 생각했습니다. (직업이 DBA인지라…) 개인적으로 서버 운영하고 관리하고 그러는 부분에서 재미를 느껴서, 서버에 띄워 놓을 만만한 것 중 하나로서 블로그가 있었을 뿐입니다. 그런데 이번에 등록한 도메인명이 너무 예뻐서 (= dba.is = 직업이 DBA인지라…) DB 관련 기술 블로그로 운영하며, 양질로 꾸며 잘 운영해보자는 생각이 들어 이번에 처음으로 Yoast를 프리미엄으로 등록해봤습니다.
그냥 무료 버전으로 초록불 켜기 용도로만 사용해도 충분했을 것 같긴 했으나, AI 기능이 추가된 뒤로 한 번쯤 써보고 싶어서 매번 눈에 아른거리던 버튼들을, 이번에 사이트 새로 만든 김에 그래 한 번 체험해보자! 하고 등록해본 것입니다.
사실 지금까지의 첫인상은 그리 좋지는 않습니다. 일단 플러그인 설치를 완료하자마자 에러부터 발생했습니다.
문제가 발생했습니다. 예기치 않은 오류가 발생했습니다.
Cannot read properties of undefined (reading ‘prevOffset’)
이러한 에러였습니다.
알아보니 Yoast SEO 플러그인에서 ‘Cannot read properties of undefined (reading ‘prevOffset’)’ 오류는 주로 번역 파일의 자리 표시자(placeholders) 순서 오류로 인해 발생한다고 합니다. 즉, Yoast 플러그인의 번역 문제인지라, 해결 방법은 크게 두 가지인데,
- 관리 페이지를 모두 영어로 돌리거나
- Yoast 플러그인의 한글 번역 파일을 삭제하는 것 (혹은 한글 번역 파일을 직접 수정해서 오류를 수정하는 것도 가능하다고 합니다.)
일단 Yoast 하나 때문에 모든 관리 페이지를 영어로 돌려버리는 것은 기분이 좋지 않아서, 한글 번역 파일을 삭제하는 방식을 선택했습니다.
아래 경로상의 파일들입니다:
/워드프레스가 설치된 경로/wp-content/languages/plugins/wordpress-seo-ko_KR*
[root@minhang01 plugins]# pwd
/shared_volume2/k8s/dbais-pv/wp-content/languages/plugins
[root@minhang01 plugins]# ls -l wordpress-seo-ko_KR*
-rw-r--r-- 1 33 tape 5225 Dec 3 12:11 wordpress-seo-ko_KR-13c172108e3ebc2555ea54a5cffd763b.json
-rw-r--r-- 1 33 tape 2372 Dec 3 12:11 wordpress-seo-ko_KR-1452e0d46abef67e70f842f830b10ec9.json
-rw-r--r-- 1 33 tape 9255 Dec 3 12:11 wordpress-seo-ko_KR-3a6bb28b59cb140b6c372392bf5f13d3.json
-rw-r--r-- 1 33 tape 96469 Dec 3 12:11 wordpress-seo-ko_KR-3ab1863386cca0be6ab4aa906cacadbd.json
-rw-r--r-- 1 33 tape 859 Dec 3 12:11 wordpress-seo-ko_KR-3dcfea4e3934344e63996b6fa47b7b5c.json
-rw-r--r-- 1 33 tape 28150 Dec 3 12:11 wordpress-seo-ko_KR-4293cf3571f532bb11ff1676090ec5e7.json
-rw-r--r-- 1 33 tape 13136 Dec 3 12:11 wordpress-seo-ko_KR-59a157b73a79db8a63459f9a2e1b874b.json
-rw-r--r-- 1 33 tape 34300 Dec 3 12:11 wordpress-seo-ko_KR-606033e8cb263b032d13356d7a627ed5.json
-rw-r--r-- 1 33 tape 2488 Dec 3 12:11 wordpress-seo-ko_KR-6ade687c7936490c88bc39df19ea71a0.json
-rw-r--r-- 1 33 tape 17748 Dec 3 12:11 wordpress-seo-ko_KR-6f380ab0bcb032c00d3d0ff21664335d.json
-rw-r--r-- 1 33 tape 2123 Dec 3 12:11 wordpress-seo-ko_KR-6ffccefef7026e678d85c6b56bd29680.json
-rw-r--r-- 1 33 tape 1971 Dec 3 12:11 wordpress-seo-ko_KR-753e370a61af6ba5ccabe91cc950cbcb.json
-rw-r--r-- 1 33 tape 34934 Dec 3 12:11 wordpress-seo-ko_KR-786eeb1e9fb710b6d8885049b18564b3.json
-rw-r--r-- 1 33 tape 29194 Dec 3 12:11 wordpress-seo-ko_KR-81d02401639ac0f30dc9d7738fcbf629.json
-rw-r--r-- 1 33 tape 1623 Dec 3 12:11 wordpress-seo-ko_KR-826f41c23138627439d01b2b0133dbc5.json
-rw-r--r-- 1 33 tape 658 Dec 3 12:11 wordpress-seo-ko_KR-8a9083701e738b3c956ea2c9a8a84375.json
-rw-r--r-- 1 33 tape 688 Dec 3 12:11 wordpress-seo-ko_KR-8c2f72a2c46baea606be9a7b0c1a23d8.json
-rw-r--r-- 1 33 tape 8557 Dec 3 12:11 wordpress-seo-ko_KR-9f6244fe05b49fabf96551959cf899a6.json
-rw-r--r-- 1 33 tape 5720 Dec 3 12:11 wordpress-seo-ko_KR-9fc912fe9f73e39d5df0779b31bb1a6f.json
-rw-r--r-- 1 33 tape 830 Dec 3 12:11 wordpress-seo-ko_KR-9ff580649b466f65633b98bb16c34525.json
-rw-r--r-- 1 33 tape 995 Dec 3 12:11 wordpress-seo-ko_KR-a35a702af4a7fbb6d2d4db8c193dd940.json
-rw-r--r-- 1 33 tape 10255 Dec 3 12:11 wordpress-seo-ko_KR-a4aee9e8c2e39d6f81fd70b8bb9ccc09.json
-rw-r--r-- 1 33 tape 35931 Dec 3 12:11 wordpress-seo-ko_KR-a4e25a0fbd268367ae0af1e06b841f78.json
-rw-r--r-- 1 33 tape 670 Dec 3 12:11 wordpress-seo-ko_KR-afe43fe171170bbc6083c10610a75434.json
-rw-r--r-- 1 33 tape 7077 Dec 3 12:11 wordpress-seo-ko_KR-b1439a828d6d7684a875580ccba87936.json
-rw-r--r-- 1 33 tape 942 Dec 3 12:11 wordpress-seo-ko_KR-b2bb3542a05d1a95a5866b83cc7b8a5f.json
-rw-r--r-- 1 33 tape 3275 Dec 3 12:11 wordpress-seo-ko_KR-c1a0e4b150b113a514f162d42c0c8ab5.json
-rw-r--r-- 1 33 tape 1513 Dec 3 12:11 wordpress-seo-ko_KR-c1b15194a6181a17d3344302011bddf5.json
-rw-r--r-- 1 33 tape 2617 Dec 3 12:11 wordpress-seo-ko_KR-d084ad2ca2d23f1331bbd1040999834e.json
-rw-r--r-- 1 33 tape 14837 Dec 3 12:11 wordpress-seo-ko_KR-d6bf43f32d0c3331e709fa67e6be35a2.json
-rw-r--r-- 1 33 tape 3880 Dec 3 12:11 wordpress-seo-ko_KR-d6c61f7884baaf8a18b31ca41ef1420f.json
-rw-r--r-- 1 33 tape 699 Dec 3 12:11 wordpress-seo-ko_KR-e422758335e56c41009e56217163c93a.json
-rw-r--r-- 1 33 tape 1659 Dec 3 12:11 wordpress-seo-ko_KR-fb9a41ab0ae57dcb4b10ea3343658bcc.json
-rw-r--r-- 1 33 tape 4492 Dec 3 12:11 wordpress-seo-ko_KR-fbf6c210cf52f9eaaf78c5f02b58c276.json
-rw-r--r-- 1 33 tape 90942 Dec 3 12:11 wordpress-seo-ko_KR.l10n.php
-rw-r--r-- 1 33 tape 104955 Dec 3 12:11 wordpress-seo-ko_KR.mo
-rw-r--r-- 1 33 tape 180815 Dec 3 12:11 wordpress-seo-ko_KR.po
그냥 바로 지워버리긴 찝찝해서 임시 디렉토리를 만들고 옮겨놨습니다.
[root@minhang01 plugins]# mkdir imsi
[root@minhang01 plugins]# mv wordpress-seo-ko_KR* imsi/
일단 Yoast가 영어로 돌아가버리긴 했지만, 에러 나던 페이지가 정상적으로 표시됩니다.
다만 이런 식으로 해당 오류를 해결할 수 있기는 한데, 설정 페이지뿐 아니라 Yoast가 사용되는 모든 페이지가 영어로 바뀌어 버립니다.
막 어려운 영어까지는 아니지만, 그래도 한글로 한눈에 들어오던 페이지가 영어로 바뀌니까 조금이라도 더 신경을 써야 됩니다. 괜히 돈 내고 프리미엄 쓴다고 더 불편해지기만 하는 상황이니 일단 원래대로 되돌리기로 했습니다.
[root@minhang01 plugins]# mv imsi/* ./
그나마 다행인 것은 에러 발생하는 페이지가 여러 군데가 아니라, 딱 저 “설정 -> 사이트 기본 사항” 페이지뿐이라 설정을 변경할 일이 생기면 그때만 잠깐 영어로 돌렸다가, 평소에는 그냥 한글로 써야겠습니다.
여기서 제가 적용한 방식은 Yoast 번역 파일을 삭제해서, 영향을 받는 부분이 Yoast뿐이라 대상 범위가 좁아서 더 추천되는 방법이긴 합니다. 하지만 이 방법대로 하려면 서버에 직접 접근하거나, 워드프레스 설치 파일이 있는 경로에 접근할 수 있어야 될 것입니다. 이렇게 작업하기는 어려운 상황이라면 워드프레스의 설정을 영어가 기본이 되도록 변경해주면 Yoast 설정 메뉴가 영어로 나올 것이기 때문에 위의 prevOffset 에러가 발생하지 않을 것입니다. 다만 이때에 일반 설정에서 사이트 기본 언어를 변경해버리면, 블로그 방문자들이 보는 페이지까지 모두 영문으로 변경될 것이기에, 사용자 -> 프로필 -> 언어를 영어로 변경하시면, 현재 로그인되어 있는 사용자만 영어로 바뀌어 표시될 것이라, 블로그 방문자들에게는 영향이 없을 것입니다.
이 방법 또한, 다른 모든 페이지가 영어로 싹 바뀌어 불편이 따를 것이기에, 에러가 발생하는 페이지를 확인할 때에만 영어로 변경하여 사용하고, 평소에는 다시 한글로 돌려두면 될 것입니다.
그 외의 Yoast 프리미엄 첫인상
Yoast 프리미엄의 대략적인 혜택은 다음과 같습니다.
기능 | Yoast SEO 프리미엄 | Yoast SEO 무료 |
---|---|---|
다중 키워드 최적화 | 최대 5개의 키워드 최적화 가능 | 페이지당 1개의 키워드만 최적화 가능 |
리디렉션 관리자 | 자동 리디렉션 및 404 오류 방지 | 제공되지 않음 |
내부 링크 제안 | 관련 페이지에 대한 내부 링크 제안 | 제공되지 않음 |
AI 기반 콘텐츠 최적화 | AI로 SEO 제목 및 메타 설명 생성 | 수동으로 작성 필요 |
소셜 미디어 미리보기 | 소셜 미디어 플랫폼에 맞춘 콘텐츠 최적화 | 제공되지 않음 |
SEO 아카데미 접근 | 모든 SEO 교육 과정 무료 이용 가능 | 제공되지 않음 |
24/7 고객 지원 | 연중무휴 지원 제공 | 제공되지 않음 |
광고 없음 | 광고 없이 플러그인 사용 가능 | 광고 포함 |
여기서 제가 기대한 부분의 90%는 AI로 최적화해주는 부분, 9.9%는 내부 링크 제안해주는 부분이었습니다. 헌데 이 AI 작업의 성능이 생각보다 좋지가 않습니다. 한글이 문제인 것일 수도 있겠으나, 제가 영어로 글을 작성할 것은 아닌지라, 어쨌거나 제가 사용하기에는 앞으로도 AI의 성능이 좋지 않을 것이란 것입니다.
AI 자동 작성 부분
1. 초점 키프레이즈
일단 “초점 키프레이즈”를 자동으로 얻지 못합니다. 웬만해서는 실패합니다. 국가를 선택하는 부분이 있는데, 그래서인지 이게 한글이라 특히나 더 잘 안 되는 게 아닌가 하는 찝찝함이 남습니다. (어쨌거나 수동으로 키프레이즈 지정하고…)
2. 제목 추천
제목 추천은 나름 괜찮은 것 같습니다. 하지만 글 제목 정도는 제가 직접 지어도 되기 때문에 크게 도움이 되는지는 모르겠습니다. 그래도 참고해서 글 제목을 다듬을 수는 있겠습니다. 헌데 저는 제목은 그냥 제가 정했습니다.
3. 메타 설명
메타 설명의 경우는 조금 아쉽긴 한데, 참고해서 쓸 수는 있긴 하겠다 싶습니다. 당장의 최대 문제는 너무 글 앞쪽의 내용만을 기준으로 설명을 붙여준다는 것입니다. 글이 길어지고, 앞부분과 뒷부분의 내용이 달라지면, 전체 문서의 내용을 포괄하지 못합니다. 내용이 짧고, 일관된 주제로만 구성되어 있어야 쓸 만해집니다. 헌데 이 경우에도 생성된 내용이 조금 짧습니다. 초록불을 달성하지 못합니다.
결국 그래서 아예 써먹지를 못하거나, 생성된 내용을 기반으로 제가 다시 수정을 해야 됩니다. 딸깍 클릭하고 완성하지는 못하겠습니다.
4. 내부 링크 제안
내부 링크 제안의 경우도 예상과는 조금 달랐는데, 이건 아직 제가 글이 많지가 않고, 전부 비슷하게 MySQL 관련된 내용만 있어서 잘 찾지를 못하는 게 아닌가 싶습니다.
헌데 이렇게 제안을 해준 다음에도 문제인 것이, 저는 자연스럽게 글의 한 부분에 내부 링크를 연결해줄 줄 알았는데, 그냥 URL만 추천해주는 것이라, 어디에 어떤 내용으로 내부 링크를 삽입할지는 알아서 정해야 됩니다. 일단 추천이라도 똑바로 해준다면 좋겠는데, 그건 좀 더 많은 글을 작성하며 두고 봐야 될 것 같습니다.
5. 그 외 자동으로 글 수정해주는 부분
위와 같이 글 중간에 수정 가능한 부분을 적당히 수정해서 키프레이즈로 변경해주는 기능이 있는데, 글이 자연스럽지 않게 변경되는 경우가 많아 써먹기 어려울 것 같습니다. 중간의 몇 단어를 키프레이즈로 고쳐주는 식인데, 한글은 같은 어간이라도 있다/있을/있게/있는/있지… 등 활용형이 다양하여, 중간에 몇몇 단어만 키프레이즈로 쏙 바꾼다고 문장까지 매끄럽게 수정이 되지는 않는 것 같습니다. 결국 수동으로 초록불 켜기 하던 것처럼, 글 중간중간을 직접 수정해야 될 것 같습니다.
그래서 Yoast 프리미엄은?
그래서 10만 원의 가치가 있었느냐 하면, 구입 직전의 기대치보다 별로라 당장에는 조금 아쉽기는 한데, 어쨌든 앞으로 1년 동안은 추가로 돈 나갈 거 없이 그냥저냥 도움을 받을 수는 있을 테니 아까운 것까지는 아니다 싶습니다. ChatGPT-4 정도 쓰는 느낌일까? 하며 결제했는데, GPT-2.5 쓰는 기분이 드는 정도. 어쨌든 말이 되는 소리를 해주기는 하는데, 그대로 받아쓰기에는 별로고… 그렇습니다.
그리고 prevOffset 에러가 발생했다? 그건 몇몇 특정 페이지에서만 에러가 날 테니까, 해당 페이지를 사용할 때에만 잠깐 임시로 관리 페이지를 영어로 되돌리면 되겠습니다.