1. 실행 절차
- 서버 용량 확인
- php 설정 수정
- 플러그인 비활성화
- Application Password 발급
- 비공개 포스트 일시적으로 공개로 전환
- 실행
- Export File 확인
- 실패 재시도
- 남은 용량 확인
- 플러그인 활성화
- 남은 용량 재확인
- 결과물 확인
- 비공개 포스트 다시 비공개로 전환
- 내부 링크 수정
- 첨부파일 업로드
- 동영상 업로드
- 티스토리 검색 인덱스 제거
- 기타 잡무
실수를 방지하기 위해서 실행하기 전에 절차를 정의한다.
2. 준비
가. 서버 용량 확인
tiredi@wordpress:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 15G 12G 2.1G 86% /
Code language: PHP (php)
실제로 파일시스템에서 인식하는 크기는 15GB다.
lsblk
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 30G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 15G 0 lvm /
VM에 할당된 원래 용량인 50GB로 확장한다.
growpart → pvresize → lvextend → resize2fs 순서를 따라서 확장한다.
sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
df -h /
# Filesystem Size Used Avail Use% Mounted on
# /dev/mapper/ubuntu--vg-ubuntu--lv 48G 12G 34G 27% /
Code language: PHP (php)
나. PHP 설정 수정
sudo docker exec -i wordpress_app sh <<'EOF'
cat > /usr/local/etc/php/conf.d/heavy-upload-php.ini <<'EOL'
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
EOL
EOF
sudo docker restart wordpress_app
sudo docker exec -i wordpress_app sh <<'EOF'
php -i | grep -E 'upload_max_filesize|post_max_size|memory_limit'
EOF
Code language: JavaScript (javascript)
memory_limit => 256M => 256M
post_max_size => 64M => 64M
upload_max_filesize => 64M => 64M
Code language: PHP (php)
다. 플러그인 비활성화
이미지나 포스트 업로드에 방해가 되는 플러그인은 비활성화 한다.
Converter for Media처럼 WEBP로 이미지를 최적화하는 플러그인은 특히 조심한다.
라. Application Password 발급

발급받아서 .env의 WP_APP_PASSWORD에 붙여넣는다.
3. Tistory2WordPress 실행
가. 실행
node dist/cli.js --all --export-links
Code language: JavaScript (javascript)
초기 400번 에러가 2번 발생했음.
이미지도 없는 포스트에서 에러가 발생한 것을 보면 일시적 네트워크 오류인 것 같다.
node dist/cli.js --retry-failed
실패한 2개까지 깔끔하게 성공하며 성공률 100%를 달성했다!
| 전체 | 1차 | 2차 | 최종 |
|---|---|---|---|
| 613 | 611 | 2 | 613 |

나. link_mapping 파일 확인
수정해야 할 내부 링크들도 뽑아봤다.
{
"blog_url": "https://ramen4598.tistory.com",
"exported_at": "2026-01-10T09:26:24.875Z",
"count": 91,
"items": [
{
"source_url": "https://ramen4598.tistory.com/605",
"target_url": "https://ramen4598.tistory.com/548",
"link_text": "",
"context": "https://ramen4598.tistory.com/548"
},
{
"source_url": "https://ramen4598.tistory.com/593",
"target_url": "https://ramen4598.tistory.com/134",
"link_text": "",
"context": "https://ramen4598.tistory.com/134"
},
...
Code language: JSON / JSON with Comments (json)
재시도에서 발견된 1개까지 합쳐서 총 발견한 내부 링크는 총 92개다.
하나씩 찾아서 수정해야 한다.
4. 결과물 확인
가. 백업 실행
일단 1차 목표는 성공했다.
여기에서 한번 백업한다.

만일의 사태에 대비하여 이사 직전의 백업본을 당분간 Protected로 유지한다.
나. 플러그인 활성화
정상적으로 WEBP를 반환하는지 확인한다.
11,013개 이미지 중에 6개가 변환되지 않지만 그냥 넘어간다.
대충 됐다.
최종적으로 남은 용량을 확인한다.
tiredi@wordpress:~/wordpress/dev$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 48G 14G 32G 31% /
Code language: PHP (php)
대략 2GB 조금 넘게 사용하였고 32GB 여유가 있다.
5. 마무리 작업
가. 내부 링크 수정
이제 92개의 링크를 수정해야 한다. 😟
아마 이사하는 것에 있어서 가장 귀찮은 작업이다.
link_mappping.json의 링크들을 하나씩 수정한다.
이것도 1월 11일 하루종일 했다.
쉽지 않네…
나. 첨부파일 및 동영상 재업로드

https://????.tistory.com/manage/setting/blog/data에 가면 백업 파일을 다운로드 받을 수 있다.
동영상은 백업 파일 안에 포함되지 않으니 동영상 다운로드 버튼을 눌러 별도 다운로드를 진행해야 한다.
백업 파일을 받아둔다.
find . -type d -name file
./592/file
./67/file
./193/file
./412/file
./205/file
./180/file
./173/file
./120/file
./312/file
./28/file
./186/file
./378/file
./119/file
./128/file
./191/file
./138/file
./190/file
./393/file
./152/file
./334/file
./565/file
./302/file
./637/file
./177/file
./122/file
./185/file
백업 파일 안에서 첨부파일만 찾으려면 위 명령어를 사용하면 된다.
총 26개 첨부파일이 있다.
이것도 수동으로 옮겨야 한다.
그래도 내부링크보다는 적으니깐 …
라. 검토 후 공개
포스트를 옮길 때 기본 상태를 “검토 대기”로 설정했다.
하나씩 검토하고 공개하기를 눌러주면 된다.
613개를…
마. 티스토리 검색 인덱스 제거
일정 시간이 흐른 뒤에 티스토리 블로그도 폐쇄하면 된다.
티스토리 블로그에 noindex 메타 태그를 추가했다.
아직 인덱스를 직접 지우진 않았다.
일단 noindex만 추가했고 추후 문제가 생기면 수동으로 다 지워야 한다;;;
6. 이사 끝
- 좋은 점:
Tistory2WordPress를 생각보다 잘 만들 것 같다.
어떻게 활용할지 고민해봐야겠다.
- 아쉬운 점:
내부 링크 변경, 동영상, 첨부파일 재업로드가 수동이라는 점.
이것들이 생각보다 시간을 많이 잡아먹는다.
- 앞으로 할 일:
아직 불편한 점이 있지만 조금씩 보완해 나가면 된다.
일단 Tistory2WordPress를 만들면서 습득한 기술을 Notion2WordPress에 적용한다.
북마크와 유튜브 iframe을 수작업으로 올리지 않게 기능을 추가한다.
그리고 워드프레스 테마부터 조금씩 수정해야 겠다.


안녕 티스토리 블로그.
- 2022년 02년 09일 ~ 2022년 02월 16일 : Github Pages
- 2022년 02월 16일 ~ 2026년 01월 10일 : Tistory
- 2026년 01월 10일 ~ : WordPress
- 2025.01.27 추가
티스토리에서 갑자기 메일이 날아왔다.
더이상 동영상 업로드 기능을 제공하지 않겠다는 일방적인 통보였다. ㄷㄷㄷ
워드프레스로 정말 잘 옮긴 것 같다.
